1

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

我的静态文件没有由 express js 提供服务,而是我的全局 catch all get 处理程序被命中。

我的目录结构:

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 文件。

编辑添加:

看起来它与默认的全部捕获路线有关。如果我将其注释掉,它会正确解决...

4

2 回答 2

2

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

请参阅Node.js / Express.js - app.router 是如何工作的?了解更多信息。

于 2013-04-08T02:41:44.347 回答
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你可以使用这个简单的代码来提供静态文件。

于 2015-03-30T10:31:12.960 回答