【问题标题】:react router 2, return 404 status反应路由器2,返回404状态
【发布时间】:2018-03-08 03:05:48
【问题描述】:

我正在使用 react router v 2.8.1 并尝试为我的 SPA 设置我的 404 页面。我无法让它真正发回 404。我正在尝试这样做,因此谷歌不会为我索引该页面。

到目前为止,我已经尝试设置一条捕获所有路由以获取路由器内的任何未知路由 -

 <Router>
    ...

    <Route
        path='*'
        status={404}
        getComponent={(location, cb) => {
          require.ensure([], require => {
            const component = require('./components/404/component.jsx').default;

            cb(null, component);
          });
        }}/>
   </Router>

这适用于显示内容。通过谷歌搜索,我发现有些人使用status={404},但我没有看到它对我有任何帮助。有没有办法从反应路由器(2.8.1)强制返回 404 状态?谢谢!

【问题讨论】:

标签: javascript reactjs react-router


【解决方案1】:

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

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

这只是翻译成:

<meta name="ROBOTS" content="NOINDEX">

目前这对我有用,我将把它留在这里,以防有人遇到同样的问题。除非有人解决了这个问题,否则请提交答案。

【讨论】:

  • 注意静态资源路径。浏览器仍会将响应解析为text/cssjavascript/application,但内容是HTML,这将在控制台中触发错误。快乐编码
猜你喜欢
  • 2016-07-03
  • 1970-01-01
  • 2016-07-11
  • 1970-01-01
  • 2013-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多