1
我想使用express.js为单个页面应用(角核)定义默认路由。当请求静态文件并且它不存在于路由中时,会发生该问题。在这种情况下,将返回默认页面内容而不是404状态(未找到)。示例代码:如何定义不包含静态资源的默认路由
var path = require('path');
var express = require('express');
var app = express();
var router = express.Router();
router.use(express.static(path.join(__dirname, '/scripts')));
router.get('*', function(request, response) {
response.sendFile(path.join(__dirname, 'views/index.html'));
});
app.use(router);
app.listen(80);
是存在一个很好的解决方案,以排除对静态文件的默认路由和处理404状态正常吗?对于文件url而不是通配符的正则表达式是否是一个好方法?
好的,谢谢!什么情况下,当我有20个静态处理程序?我应该创建另一个父目录,把所有的静态文件夹给他们,并验证它在默认路由? – estradowiec
我更新了我的答案以解决您的评论。 20个静态处理程序有点雄心勃勃;) - 您只需要一个静态处理程序,并将您的资产组合在一起。 –
太棒了!我可以使用多个静态处理程序,因为我的应用程序是可插入的。换句话说,应用程序中的每个插件都可以拥有自己的静态资源。 – estradowiec