当我点击使用IR的Meteor应用程序上不存在的路线时,我得到一个带有HTML的200
响应(当在浏览器上呈现时)在控制台上显示js错误No route found for path: "/aRoute"
。
如何让它返回404
?
答案 0 :(得分:7)
我发现这个更简单的方式来显示未找到的页面。在router.js
中Router.configure({
layoutTemplate: "layout",
loadingTemplate: "loading",
notFoundTemplate: "notFound"
})
此处“notFound”可以是您要显示404错误的任何模板
答案 1 :(得分:7)
现在似乎不是正确处理真正的404的方法(甚至是工作?)。请参阅此问题,例如:https://github.com/EventedMind/iron-router/issues/1055
即使您尝试应该工作的方式,您仍然会得到200状态代码。像下面的代码应该工作:
this.route( 'pageNotFound', {
path: '/(.*)',
where: 'server',
action: function() {
this.response.writeHead(404);
this.response.end( html );
}
});
答案 2 :(得分:0)
this.route('template404', {
path: '/*'
}
在Router.map的末尾使用它,因为这会捕获每个值 - 如果你在开始时使用每个路径都会被捕获到这个
当然,你可以使它更复杂,例如:
this.route('template404', {
path: '/posts/*'
}