我正在使用 node.js,我希望我的 HTML 文件能够获取 javascript 文件。
这是我使用 node.js 运行的名为 server.js
的文件:
var app = require('express')();
var http = require('http').Server(app);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
用于托管 index.html
的非常简单的代码。这个 HTML 文件有一些脚本标签:
<script type="text/javascript" src="./A.js"></script>
<script type="text/javascript" src="./B.js"></script>
<script type="text/javascript" src="./C.js"></script>
问题是,当我运行 server.js
并转到浏览器时,我在控制台上收到以下错误:
GET http://localhost:3000/A.js
GET http://localhost:3000/B.js
GET http://localhost:3000/C.js 404 (Not Found)
这些文件都在同一个目录中,我不明白为什么它没有获取脚本。
最佳答案
你的 server.js
不知道如何处理除了根页面请求之外的任何事情。 (即使是 http://localhost:3000/index.html 也会失败并返回 404。)
添加express.static
middleware从目录提供文件:
var express = require('express');
var app = express();
var http = require('http').Server(app);
express.static('public')
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
现在 public
文件夹中的所有文件都将按您的意愿提供。 (将您的 *.js 文件移动到名为 public
的子文件夹)
参见 HyperDev default project template一个很好的互动示例。
关于javascript - 获取javascript时Node.js HTML页面错误404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40595535/