[英]Express does not render static files once 404 page is added
我試圖將404頁面添加到我的express應用程序中,但是,一旦我將路由添加到404頁面,靜態文件就不會呈現(例如,無法獲取“ stylesheet / main.css”)。
建議始終將所有404頁作為最后一條路由,盡管我這樣做了,但仍然為任何靜態內容提供了404頁(但其他路由則沒有)。 如果我刪除//Add 404 page for unknown routes
注釋功能,則一切正常。
為什么會這樣,我該怎么做才能糾正它?
代碼如下:
//modules
var express = require('express'),
path = require('path'),
errorPages = require('./controllers/errorPages.js');
//start express
var app = express();
// set-up environment
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(express.cookieParser('secret code...'));
app.use(express.session());
//Redirect to login for all requests if user is not logged in at /dash
app.use('/dash', function(req, res, next) {
if(!req.session.auth) {
res.location('/login');
res.send(307, null);
}
next();
});
app.use(app.router);
app.use(require('less-middleware')(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'public')));
//start routes from routes.js file
require('./routes')(app);
//Add 404 page for unknown routes
app.all('*', function(req, res) {
errorPages.get(req, res, 404);
});
app.listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
代替
//Add 404 page for unknown routes
app.all('*', function(req, res) {
errorPages.get(req, res, 404);
});
用這個
app.use(function(req, res, next){
errorPages.get(req, res, 404);
});
最后添加此中間件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.