Node.js Express框架中正确配置静态文件与404路由的顺序

作者:夜航船时间:2026-10-28 11:21:00浏览:356

本文介绍在Node.js Express框架中,如何正确配置静态文件服务与404通配符路由。关键在于将express.static置于app.router之前,并将捕获所有请求的app.get('*')放在最后,以确保静态资源不被404逻辑拦截,同时未匹配的路由能正确返回404页面。

Express路由与静态文件配置顺序

在使用 Express 框架时,路由配置往往是开发者容易困惑的环节。虽然可以通过 app.get('*') 来捕获所有页面请求,但如果配置不当,会导致静态文件被忽略。最近在开发一个小工具时,找到了一个有效的解决方案。

具体实现代码如下:

var express = require('express'),
router = require('./routes');
var app = module.exports = express.createServer();
// Configuration
app.configure(function () {
 // ...
 // 注意配置顺序,不要写反
 app.use(express.static(__dirname + '/public')); 
 app.use(app.router);
});
// 其他 router ...
// 404 处理
app.get('*', function(req, res){
 res.render('404.html', {
 title: 'No Found'
 })
});

将通配符路由放在最后处理。这样,所有未被其他路由匹配的页面请求,都会默认由 404.html 接管处理。

作者最新文章