4

I am currently testing out a node.js application and have tried to add:

<link rel="stylesheet" href="assets/css/formalize.css" />
<script src="assets/js/jquery.formalize.js"></script> 

to my code but keeping getting the error message:

Failed to load resource: the server responded with a status of 404 (Not Found) 

http://localhost:3000/assets/css/formalize.css

Failed to load resource: the server responded with a status of 404 (Not Found) 

http://localhost:3000/assets/js/jquery.formalize.js

Any idea where I'm going wrong? Here is my code so far (in app.js)

var express = require('express'),
    app = express(),
    server = require('http').createServer(app),
    io = require('socket.io').listen(server);

server.listen(3000);

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

io.sockets.on('connection', function(socket) {
    socket.on('send message', function(data) {
        io.sockets.emit('new message', data);
    });
});
4

1 回答 1

15

您需要将express.static中间件添加到您的app并使其指向您的包含静态资产的目录。

例如,如果您的目录结构设置如下:

app.js
index.htm
  static
    assets
      js
        jquery.formalize.js
      css
        formalize.css

您可以像这样指定静态资产目录:

app.use(express.static(__dirname + '/static'));

并在您的 html 文件中引用您的文件,如下所示:

<link rel="stylesheet" href="/assets/css/formalize.css"/>
<script src="/assets/js/jquery.formalize.js"></script> 
于 2013-07-21T19:34:44.667 回答