响应路由器2,返回404状态

时间:2017-09-26 19:10:18

标签: javascript reactjs react-router

我正在使用react router v 2.8.1,我正在尝试为我的SPA设置404页面。我无法让它实际发送回404.我正在尝试这样做,所以谷歌不会为我索引该页面。

到目前为止,我已尝试设置catch all route以获取路由器中的任何未知路由 -

SetTitleMatchMode, 2 ; Makes the #IfWinActive name searching flexible
^d::Send {Home}{ShiftDown}{End}{Right}{ShiftUp}{Del} ; Generic response to ^d.

#IfWinActive, Gmail ; Gmail specific response
  ^d::Send {Home}{ShiftDown}{End}{Right}{ShiftUp}{Del} ; adapt this line for gmail
#IfWinActive ; End of Gmail's specific response to ^d

#IfWinActive, Excel ; Excel specific response.
  ^d::Send {Home}{ShiftDown}{End}{Right}{ShiftUp}{Del} ; adapt this line for Excel
#IfWinActive ; End of Excel's specific response to ^d

这适用于显示内容。通过谷歌搜索,我发现有些人使用 <Router> ... <Route path='*' status={404} getComponent={(location, cb) => { require.ensure([], require => { const component = require('./components/404/component.jsx').default; cb(null, component); }); }}/> </Router> ,但我没有看到它为我做任何事情。有没有办法强制从反应路由器(2.8.1)返回404状态?谢谢!

1 个答案:

答案 0 :(得分:2)

由于我没有使用服务器渲染/路由,因此无法获得404响应,至少我现在能够找到它。所以我的解决方案是只添加一个noIndex元标记,以防止谷歌索引它可能遇到的任何404页面。我使用Helmet js,所以在我的404组件中我只是这样做:

#import "UIImage+CategoryA.h"

@implementation UIImage (UIImage+CategoryB)

-(void)someMethod {
    [self doThis]; // Can I do this?
}

这只是转换为:

<Helmet
    title={'Not Found'}
    meta={[
      {name: 'ROBOTS', content: 'NOINDEX'}
    ]}
  />

这对我现在有用,我会留在这里,任何人都遇到同样的问题。除非有人解决这个问题,否则请提交答案。