使用 express got "Cannot Get /" 读取静态文件

Read static files with express got "Cannot Get /"

我试图从可靠的网站学习如何使用 express 读取静态文件。然后我发现不知道为什么,我的终端告诉我我成功了但是网站显示我 "Cannot Get /"(如下图所示)。我找到了很多解决方案(例如,在我的 html 文件中,我将脚本 src 添加到 socket.io)但仍然失败。我可以从哪里开始处理它?请帮助我...

terminal show success

website show error

下面是我的代码:

C:\...-on-1-webrtc\server.js

const express = require('express')
const app = express()
const http = require('http').createServer(app)

// static data
app.use('/', express.static(__dirname + '/public/'))

// TODO: Signaling

//start server listen 8080 port
http.listen(8080, () => {
    console.log(`Server running in 8080`)
})

C:\...-on-1-webrtc\pubilc\index.html

(来源)

"hello"

(之后)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>111</title>
    <script src="https://cdn.socket.io/socket.io-3.0.5.js"></script>
</head>
<body>
<h1>"hello"</h1>
<script>
    var socket = io();
</script>
</body>
</html>

我稍微更改了您的代码,这是我的解决方案:

首先更改 public 文件夹的名称以更正。不是“pubilc”,只有“public”。

文件夹和文件结构:

server.js :

const express = require("express");
const app = express();
const port = 8080;
// const http = require("http").createServer(app);

// static data
app.use("/", express.static(__dirname + "/public"));

//start server listen 8080 port
app.listen(port, () => {
  console.log(`Server is  listening at http://localhost:${port}`);
});

index.html(没有任何变化):

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>111</title>
    <script src="https://cdn.socket.io/socket.io-3.0.5.js"></script>
  </head>
  <body>
    <h1>"hello"</h1>
    <script>
      var socket = io();
    </script>
  </body>
</html>

输出 :

测试:express 4.17.2 node 16.13.0 Linux Ubuntu 20.04 和 Win10