Node.js HTML 获取 javascript 时页面错误 404

Node.js HTML page error 404 while getting javascript

我正在使用 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)

404 error not found

文件都在同一个目录下,我不明白为什么它没有获取脚本。

尝试查看 Express1 提供静态文件的文档。

您正在使用这些行提供索引文件:

app.get('/', function(req, res){
   res.sendFile(__dirname + '/index.html');
});

您可以使用相同的方式提供 js 文件,或者将它们放入 public 文件夹并添加 app.use(express.static('public')).

然后您可以将它们引用为 public/A.js

您的 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 以了解此操作的良好互动示例。