Node.js / Expess.js。 如果使用通配符路由器,静态路由器将无法识别

当我用所有其他路线只使用这条路线时,这个静态文件的效果很好:

var public_dir = path.join(__dirname, 'public'); app.use('/public', express.static(public_dir)); 

但是,当我在这些线下添加 – 所有的请求都赶上这个路由器(不是前一个):

 app.get('/*', function(req, res){ res.redirect('/#!' + req.path); }); 

这对我来说很奇怪,因为/public definition第一。 但是所有的请求都去了最后定义的/*请求处理程序。

现在,如果我尝试打开页面http://127.0.0.1:3000/public/website/application.js我将redirect到http://127.0.0.1:3000/#!/public/website/application.js 。 为什么会发生,以及如何以最好的方式解决这种情况?

万分感谢!


解决方法很简单。 我没有在中间件列表中工作的声明。

 app.use(app.router); 

这是一个URL路由的问题。 但奇怪的是, node.js没有告诉我有关中间件的“不正确的设置”。

       

网上收集的解决方案 "Node.js / Expess.js。 如果使用通配符路由器,静态路由器将无法识别"