2013-04-08 36 views
1

我被困在令人沮丧的问题上。expressjs静态文件没有被送达

我的静态文件不是由express js服务的,而是我的全局catch全部获取处理程序正在被命中。

我的目录结构:

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

如果app.use(app.router)在app.use(express.static(...))之上,那么这些路由将胜过静态。你的app.get('*',...)行是路由的一部分。

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

+0

感谢您的链接。我会检查出来的。 – Alan 2013-04-08 02:45:02

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是模块路径 在这里你可以使用这个简单的代码来提供静态文件。