我正在使用 React router v 2.8.1,并尝试为我的 SPA 设置 404 页面。我无法让它实际发回 404。我正在尝试执行此操作,以便 google 不会为我索引该页面。
到目前为止,我已尝试设置捕获所有路由以获取路由器内的任何未知路由 -
<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}
,但我没有看到它为我做任何事情。有没有办法强制从 react 路由器(2.8.1)返回 404 状态?谢谢!
最佳答案
由于我没有使用服务器渲染/路由,因此实际上不可能获得 404 响应,至少从我现在可以找到的情况来看是这样。所以我的解决方案是添加一个 noIndex 元标记,以防止谷歌索引它可能遇到的任何 404 页面。我使用 Helmet js,所以在我的 404 组件中我只是这样做:
<Helmet
title={'Not Found'}
meta={[
{name: 'ROBOTS', content: 'NOINDEX'}
]}
/>
这只是翻译为:
<meta name="ROBOTS" content="NOINDEX">
这目前对我有用,我将把它留在这里,以防有人遇到同样的问题。除非有人解决这个问题,在这种情况下请提交答案。
关于javascript - react 路由器2,返回404状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46434106/