簡體   English   中英

一旦添加404頁面,Express不會呈現靜態文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM