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
文件都在同一个目录下,我不明白为什么它没有获取脚本。
您正在使用这些行提供索引文件:
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 以了解此操作的良好互动示例。
我正在使用 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
文件都在同一个目录下,我不明白为什么它没有获取脚本。
您正在使用这些行提供索引文件:
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 以了解此操作的良好互动示例。