2016-11-30 57 views
0

我想設置error404處理程序。正如我在這裏看過的,我應該在其餘路由的最後設置'*'路徑到error404.jade頁面。當我設置error404處理程序(app.get('*',......))時頁面不工作

這樣做時,頁面不會加載圖像或CSS或JavaScript文件。這對我沒有意義。

app.ts

import express = require('express'); 
import routes = require('./routes/index'); 
import http = require('http'); 
import path = require('path'); 

var app = express(); 

// all environments 
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.logger('dev')); 
app.use(express.json()); 
app.use(express.urlencoded()); 
app.use(express.methodOverride()); 
app.use(app.router); 

app.use(express.static(path.join(__dirname, 'public'))); 

// development only 
if ('development' == app.get('env')) { 
    app.use(express.errorHandler()); 
} 

app.get('/', routes.login); 
app.get('/home', routes.home); 
app.get('/markets', routes.markets); 
app.get('/market/*', routes.specific_market); 
app.get('/trades', routes.trades); 
app.get('/about', routes.about); 
app.get('/contact', routes.contact); 
//app.get('*', routes.error404); 

http.createServer(app).listen(app.get('port'), function() { 
    console.log('Express server listening on port ' + app.get('port')); 
}); 

index.ts

/* 
* GET home page. 
*/ 
import express = require('express'); 
import market_routes = require('./market-routes'); 
import trade_routes = require('./trade-routes'); 
import data = require('../Scripts/data-test'); 

// STATIC PAGES 
export function login(req: express.Request, res: express.Response) { 
    res.render('login', { title: 'Login', user, year: new Date().getFullYear() }); 
}; 
export function about(req: express.Request, res: express.Response) { 
    res.render('about', { title: 'About', user, year: new Date().getFullYear(), message: 'Description page' }); 
}; 
export function contact(req: express.Request, res: express.Response) { 
    res.render('contact', { title: 'Contact', user, year: new Date().getFullYear(), message: 'Contact page' }); 
}; 
export function error404(req: express.Request, res: express.Response) { 
    res.render('error404', { title: 'Not Found', user, year: new Date().getFullYear(), message: 'Error page' }); 
}; 

var user = data.user; 

export function home(req: express.Request, res: express.Response) { 
    res.render('home', { title: 'Home', user, year: new Date().getFullYear() }); 
}; 

export function markets(req: express.Request, res: express.Response) { market_routes.markets(req, res); }; 
export function specific_market(req: express.Request, res: express.Response) { market_routes.specific_market(req, res); }; 

export function trades(req: express.Request, res: express.Response) { trade_routes.trades(req, res); }; 
export function advanced_trades(req: express.Request, res: express.Response) { trade_routes.advanced_trades(req, res); }; 

(img) Page with the line 'uncommented'

(img) Page with the line 'commented'

+0

找不到您的靜態圖像。嘗試使用沒有'*''的死記硬背,只是'app.use(routes.error404);' –

+0

@JohannesMerz YEES !!!這樣可行!非常感謝 –

+0

我創建了一個正式答案,以便其他人可以看到。 –

回答

0

你靜的arent發現。使用沒有'*'的路線:

app.use(routes.error404); 
相關問題