【发布时间】:2018-09-13 05:45:24
【问题描述】:
晚上好,我遇到的问题与 react 路由器有关。
这是我的 App.js,其中正在处理我的所有路由
const App = () => (
<div className="App">
<MediaQuery minWidth={700}>
{(matches) => {
if (matches) {
return (<Router>
<div>
<Headroom>
<Header />
</Headroom>
<main>
<Route exact path='/' component={homepage} />
<Route path='/home' component={homepage} />
<Route path='/OurPubs' component={OurPubs} />
<Route path='/OurEmail' component={OurEmail} />
<Route path='/OurQuest' component={OurQuest} />
<Route path='/StayRelevant' component={StayRelevant} />
<Route path='/GetCurious' component={GetCurious} />
<Route path='/TheGoods' component={TheGoods} />
<Route path='/post/:slug' component={Post}>
<Redirect from="*" to="/" />
</Route>
</main>
</div>
</Router>
当我使用 GraphQL 获取数据并使用模板时(在某种意义上,每个 Post 都代表一个 Route)
<Route path='/post/:slug' component={Post}> 将用户带到不同的帖子。
现在,如果在移动设备上,删除缓存后,浏览器将显示错误 404 消息。这是正确的,毕竟 url post/XXXX 实际上并不存在于服务器上。
Not Found <br /> The requested URL /post/XXXX was not found on this server.
该问题仅在帖子内刷新或退出浏览器后在移动设备上出现。
问题是如何简单地将用户从未知路线带回 path="/"(家)?
【问题讨论】:
-
我认为问题本质上是在尝试刷新时,浏览器向不存在的 url 发送请求,因此无法加载任何内容。由于我无权更改服务器配置,我几乎一无所知
-
也许哈希路由会解决这个问题?
标签: javascript reactjs react-router graphql react-router-v4