尝试提供静态 JS 文件 Node.js,错误 404
Posted
技术标签:
【中文标题】尝试提供静态 JS 文件 Node.js,错误 404【英文标题】:Trying to serve static JS files Node.js, Err 404 【发布时间】:2021-10-03 12:18:17 【问题描述】:我正在尝试设置一个简单的 node.js 服务器来完成一些基本的 Socket.io 工作,但是当我尝试提供我的静态 JS 文件时,我收到了这个错误:
GET https://somewebsitewithfiles.websitenet::ERR_ABORTED 404
这是我的服务器和本地代码:
服务器:
var express = require('express');
var app = express();
const http = require('http').Server(app);
const io = require('socket.io')(http);
const port = process.env.PORT || 3000;
app.get('/', (req, res) =>
res.sendFile(__dirname + '/html/index.html');
);
app.use(express.static('Static'))
http.listen(port, () =>
console.log(`Socket.IO server running at http://localhost:$port/`);
)
本地:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script src="/Static/User.js"></script>
</body>
</html>
如您所见,我使用了 express static file 命令,女巫似乎不起作用。我的文件系统由我的项目文件夹组成,里面是我的服务器 JS 文件。那里还有一个名为“Static”的文件夹,其中包含我的静态文件和一个名为 HTML 的文件夹,其中包含我的 index.html
任何帮助表示赞赏。谢谢
【问题讨论】:
【参考方案1】:app.use(express.static('静态')) 试着把这条线放在你的'/'路线上方
代码:
var express = require('express');
var app = express();
const http = require('http').Server(app);
const io = require('socket.io')(http);
const port = process.env.PORT || 3000;
app.use(express.static('Static'))
app.get('/', (req, res) =>
res.sendFile(__dirname + '/HTML/index.html');
);
http.listen(port, () =>
console.log(`Socket.IO server running at http://localhost:$port/`);
)
编辑:
<script src="/Static/User.js"></script>
您不必在 src 路径中提及“静态”。
正确方法:
<script src="/User.js"></script>
【讨论】:
在我的路线上方加上斜线是什么意思?请详细说明 把这个 app.use(express.static('Static')) 放到 app.get('/',...) 上面 我明白了,会试试 新错误:加载资源失败:服务器响应js文件状态为404()。 您不必在 SRC 中指定“静态”以上是关于尝试提供静态 JS 文件 Node.js,错误 404的主要内容,如果未能解决你的问题,请参考以下文章
为啥我在 node.js 中使用 sendFile() 方法为两个路由提供静态文件时会出错
Node.js 公共静态文件夹,用于为 js 提供 utf-8 字符集