gpt4 book ai didi

node.js - 使用 NodeJS 服务器时无法加载本地文件

转载 作者:太空宇宙 更新时间:2023-11-04 02:52:51 25 4
gpt4 key购买 nike

我对 NodeJS 很陌生,我目前正在使用它(和 websockets),所以这个问题可能有点愚蠢。无论如何,我正在遵循一个教程,该教程为我提供了一个简单的 app.js,其中包含以下内容:

var fs = require('fs')
, http = require('http')
, socketio = require('socket.io');

var server = http.createServer(function(req, res) {
res.writeHead(200, { 'Content-type': 'text/html'});
res.end(fs.readFileSync(__dirname + '/index.html'));
}).listen(8080, function() {
console.log('Listening at: http://localhost:8080');
});

socketio.listen(server).on('connection', function (socket) {
socket.on('message', function (msg) {
console.log('Message Received: ', msg);
socket.broadcast.emit('message', msg);
});
});

在我的index.html中,我试图加载一些js和css文件,但我似乎无法加载它们。这些文件位于 js 文件夹内,该文件夹与我的 app.js 和 index.html 位于同一目录中,我尝试像这样加载它们:

<script src="/js/script.js"></script>

如果我在浏览器中查看请求的响应,它会返回index.html 的内容。

再次,抱歉,如果这个问题很愚蠢,但我被困住了,不知道该去哪里寻找。

谢谢!

最佳答案

默认情况下,node.js 中的 Web 服务器不提供任何文件(与其他一些 Web 服务器不同)。因此,如果您希望提供 js 文件,则必须定义一个为其提供服务的 Web 服务器路由。您显示的代码会为进入该 http 服务器的所有传入请求返回 index.html,因此,当传入 /js/script.js 的请求时,您的 Web 服务器会发送 index.html

与 Node.js 一起使用进行 Web 服务的典型框架是 Express,它具有 express.static()可用于定义覆盖所有静态文件或特定目录中的所有文件的路由。当然,您可以编写自己的静态文件处理代码,或者找到其他一些模块来执行此操作。关键是您必须编写或配置一些代码来为您的静态资源文件提供服务。 Node.js http 服务器不会自动为您完成此操作。

关于node.js - 使用 NodeJS 服务器时无法加载本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41656224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com