Node.js/Expss.js.如果与通配符路由器一起使用,则无法识别静态路由器
Node.js / Expess.js. Static router not recognized if used with wildcard router
当我只将此路由与所有其他路由一起使用时,静态文件服务良好:
var public_dir = path.join(__dirname, 'public');
app.use('/public', express.static(public_dir));
但当我在下面添加这些行时,所有请求都被这个路由器(而不是前一个)捕获:
app.get('/*', function(req, res){
res.redirect('/#!' + req.path);
});
这对我来说很奇怪,因为/public
的定义是第一位的。但所有请求都进入最后定义的/*
请求处理程序。
现在,如果我尝试打开页面http://127.0.0.1:3000/public/website/application.js
,我将被重定向到http://127.0.0.1:3000/#!/public/website/application.js
。为什么会发生这种情况,以及如何以最佳方式解决这种情况?
非常感谢!
解决方案很简单。我在中间件列表中没有工作声明。
app.use(app.router);
这造成了url路由的问题。但奇怪的是,node.js
并没有告诉我中间件的"错误设置"。
您的代码没有错,但请记住,对不存在的东西的任何请求都会被您的get捕获('/*',…)。
也就是说,你在/public
上加载public_dir
,这意味着如果public_dir
被定义为public/website/
,你必须执行http://127.0.0.1:3000/public/application.js
才能访问位于/public/website/application.js
的文件
相关文章:
- 流星JS:铁路由器点击按钮
- 未为路由器应用程序调用Node.Js的回调
- React.js-React路由器内容未更改
- 如何使用js代码转发reactjs路由器
- 无法理解Angular JS的ui路由器行为
- Backbone.js路由器和Internet Explorer重定向问题
- Ember.js:如果控制器中满足某些条件,则在路由器中重定向
- Ember.js 带有 ember 路由器的标签标签的文本字段 ID
- Ember.js路由器,从视图获取路由器
- Backbone.js路由器混淆(pushState:true,尾部斜杠)
- Node.js/Expss.js.如果与通配符路由器一起使用,则无法识别静态路由器
- 通过当前路由器's模型转换为Ember.js中创建的对象
- 节点JS基础路由器被覆盖
- Backbone.js路由器和后退按钮检查
- 如何在使用ui路由器时构造angular.js应用程序组件
- 相对链接和backbone.js路由器
- Ember.js应用程序架构与路由器,如何避免重复的方法
- Requirejs+Backbone.js:类型错误:Can't在路由器中传递-路由器不是一个函数
- 如何在主干中显示视图.js(路由器.js中不显示警报)
- 如何使用路由器.js独立使用