expressjs静态文件未被提供

时间:2013-04-08 02:22:56

标签: javascript node.js express

我陷入了一个令人沮丧的问题。

我的静态文件不是由快递js提供的,而是我的全局捕获所有获取处理程序正在被命中。

我的目录结构:

node/apps/web/app.js
-------------/public/
--------------------/css/site.css
--------------------/js/
--------------------/img/

我的开发配置

app.configure('development',function() {

console.log(__dirname);

// for development, serve static files via express
app.use(express.static(__dirname + '/public'));

app.use(express.errorHandler({dumpExceptions: true, showStack: true}));
});
//...later
app.get('*',route.r404);

请求:

http://192.168.1.101/css/site.css

无法触发正确的css文件。

编辑添加:

看起来它与默认捕获所有路由有关。如果我发表评论,它会妥善解决......

2 个答案:

答案 0 :(得分:2)

如果app.use(app.router)位于app.use(express.static(...))行之上,则路由将胜过静态。您的app.get('*',...)行是路线的一部分。

有关详细信息,请参阅Node.js / Express.js - How does app.router work?

答案 1 :(得分:0)

 var express = require("D:/node/express/modules/express");
 var path=require("D:/node/express/modules/path");
 var app = new express();
 app.get('/',function(req,res){
     res.sendFile(path.join(__dirname,'/index.html'));
 });
 app.get('/about',function(req,res){
    res.sendFile(path.join(__dirname,'/about.html'));
 });
 app.listen(1000);

此处var expressvar path是模块路径 在这里,您可以使用这个简单的代码来提供静态文件。