如何使用Iron Router返回404

Tom*_*ero 9 meteor iron-router

当我点击我使用IR的Meteor应用程序上不存在的路径时,我得到一个200带有HTML 的响应(当在浏览器上呈现时)在控制台上显示js错误No route found for path: "/aRoute".

如何让它回归404

Kai*_*ais 7

我发现这种更简单的方式来显示未找到的页面.在router.js中

Router.configure({
    layoutTemplate: "layout",
    loadingTemplate: "loading",
    notFoundTemplate: "notFound"
})
Run Code Online (Sandbox Code Playgroud)

这里"notFound"可以是您要显示404错误的任何模板

  • 不,这确实*不*返回404状态代码,代码仍为200. (2认同)

Kri*_*r K 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 );
  }
});
Run Code Online (Sandbox Code Playgroud)