我有一个 nodejs 应用程序并且正在使用 expressjs。我已经定义了我的静态目录,但是当我访问它时,它没有加载。我的快速配置是:
var app = express.createServer().listen(8001);
app.configure(function(){
app.use(express.methodOverride());
app.use(express.bodyParser());
app.use(app.router);
app.use('/public', express.static(__dirname + '/public'));
app.use(express.cookieParser());
app.use(express.session({ secret: "appsession" }));
app.use(express.errorHandler({showStack: true, dumpExceptions: true}));
app.set('views', __dirname + '/views');
app.set('view engine', 'hbs');
});
在我的 /public
目录中,我有 3 个文件夹,css、js 和 img。在 css 里面我有一个 style.css。当我尝试通过 http://localhost:8001/public/css/style.css 直接访问它时我得到:Cannot GET/public/css/style.css
知道我可能做错了什么吗?
谢谢!
编辑:
这似乎与我的路线设置方式有关。我是这样做的:
var routes = require('./routes')(db);
pp.get('/', routes.index);
然后在我的 index.js
文件中,我有:
module.exports = function(db) {
return {
index: function(req, res, next) {
res.render('index');
}
}
}
我启用了错误处理,但是当我以这种方式使用路由时,它不使用表达错误处理,但是如果我取消它,它就会使用。
最佳答案
按如下方式设置静态 http 中间件:
app.use(express.static(__dirname + '/public'));
然后使用 url 在 ./public/css/style.css 中检索一个文件:
"/css/style.css"
当您实际请求文件时,public 不是路径的一部分。
关于node.js - Expressjs 无法识别静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9983031/