当前位置:  开发笔记 > 编程语言 > 正文

使用NodeJS服务器时无法加载本地文件

如何解决《使用NodeJS服务器时无法加载本地文件》经验,为你挑选了1个好方法。

我对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位于同一目录中,我正在尝试加载它们,如下所示:


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

再次,对不起,如果这个问题很愚蠢,但我被困住了,不知道在哪里看.

谢谢!



1> jfriend00..:

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

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

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有