Javascript 反应路由器2,返回404状态

Javascript 反应路由器2,返回404状态,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我正在使用react路由器v2.8.1,并试图为我的SPA设置404页面。我很难让它发回404。我正试图这样做,这样谷歌就不会为我索引那个页面 到目前为止,我已经尝试设置一个“全包”路由,以获取路由器中的任何未知路由- <Router> ... <Route path='*' status={404} getComponent={(location, cb) => { require.

我正在使用react路由器v2.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>

...
{
require.确保([],require=>{
const component=require('./components/404/component.jsx')。默认值;
cb(零,分量);
});
}}/>

这可以很好地显示内容。通过谷歌搜索,我发现一些人在使用
状态={404}
,但我看不到它对我有任何帮助。有没有办法强制react路由器返回404状态(2.8.1)?谢谢

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

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

也就是说:

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


这对我来说暂时有效,我将把它留在这里,以防有人遇到同样的问题。除非有人解决了这个问题,否则请提交一个答案。

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

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

也就是说:

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


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

您应该升级到v4,并设置客户端和服务器路由器@AdamAzad我的权限相当有限,因为没有服务器渲染,我只能使用这个版本。您不能从客户端触发404-需要从服务器升级到v4,并设置客户端和服务器路由器@AdamAzad。由于没有服务器渲染,我受到了相当大的限制,因此我只能使用此版本。您无法从客户端触发404-这需要来自服务器。请注意静态资源路径。浏览器仍将响应解析为
text/css
javascript/application
,但内容是HTML,这将在控制台中触发错误。快乐编码小心静态资源路径。浏览器仍将响应解析为
text/css
javascript/application
,但内容是HTML,这将在控制台中触发错误。快乐编码