我试图为每个请求设置一个通用处理程序,这些请求不像图像或图标或类似的东西。例如,我希望此处理程序处理/index
,/index.html
,/user/123
等,但不是/favicon.ico
,/sunflower.png
,/images/starfish.png
等。
这是我目前所拥有的
app.get('/:name', (req, res) => {
res.render(req.params.name)
})
但这当然是匹配/favicon.ico
,以及我不希望它匹配的所有其他网址。它也不匹配.html
个扩展名。对于这种情况,有没有一个干净的解决方案?
答案 0 :(得分:0)
生产环境中提供静态资产(如您列出的图像)的最佳解决方案是在Express前面放置一个前置代理(例如:nginx)并相应地进行配置。
这样,对静态资产的请求将被卸载到代理,并且永远不会到达Express。 Express最适合异步提供动态内容,不要用它来提供文件。