Express 找不到静态文件

Express Can't find Static files

使用express和sockets创建聊天客户端。但是,当我尝试连接到静态文件时收到 404。

Server.js

var jade = require('jade');

var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
io.on('connection', function() {
    'use strict';
    socket.on('setPseudo', function(data) {
        socket.set('pseudo', data);
    });
    socket.on('message', function(message) {
        socket.get('pseudo', function(error, name) {
            var data = {
                'message': message,
                pseudo: name
            };
            socket.broadcast.emit('message', data);
            console.log("user " + name + " send this : " + message);
        });
    });
});
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.set("view options", {
    layout: false
});
app.use(express.static(__dirname + '/public'));

app.get('/', function(req, res) {
    'use strict';
    res.render('home.jade');
});
server.listen(4000);

为了让我的应用程序正常工作,我需要连接到我的 /public 文件夹中的 script.js 文件。但是服务器好像找不到。

使用 jade 文件更新:

doctype html
html
    head
        title le Chat
        script(src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js')
        script(src="/socket.io/socket.io.js")
        script(src="public/script.js")
body
    div.container
        header
            h1 le Chat Meow
        input(type='text')#pseudoInput
        button#pseudoSet Set Pseudo
        div#chatEntries
        div#chatControls
            input(type='text')#messageInput
            button#submit Send

还有文件夹结构:

-public > script.js
-views > home.jade
-server.js

script(src="public/script.js") 更改为 script(src="script.js"),因为您的 public 文件夹是静态文件的根目录,因此您不需要将其放在 html 文件的路径中

由于有人将您关于 console.readLine 的其他最新问题标记为重复问题,尽管这显然不是我在这里回答的问题。

显然 console.readLine 在 IDE 中不起作用,例如 eclipse。 您必须 运行 实际控制台中的程序才能使该代码正常工作。 建议改用 缓冲 ​​reader