【问题标题】:SPA site served via react-router does not load unless you've visited the homepage除非您访问过主页,否则通过 react-router 提供的 SPA 站点不会加载
【发布时间】:2018-12-13 05:22:27
【问题描述】:

如果您导航到我的 React 站点的主页,它可以正常加载,但是如果您首先打开 /some-link,那么您会遇到我的 CDN 的 page not found 错误。只要您先打开主页,您就可以导航到任何其他链接。如果该网站之前已经加载过,您可以通过输入网址打开/some-link

我的路由器如下所示:

                <Router>
                    <Wrapper>
                        <Header />
                        <Body>
                            <Switch>
                                        <Route
                                            path="/some-link"
                                            component={SomeComponent}
                                        />
                            </Switch>
                        </Body>
                        <Footer />
                    </Wrapper>
                </Router>

【问题讨论】:

  • 什么是网络服务器?您必须在服务器上配置某种类型的 URL 重写。
  • Web服务器是netlify的静态CDN
  • 这会让你朝着正确的方向前进:netlify.com/docs/redirects

标签: reactjs react-router single-page-application


【解决方案1】:

简短的回答,假设您的主页是 index.html,您应该只需要一个包含此内容的 _redirects 文件:

/*    /index.html   200

所有细节都可以在这里找到:

【讨论】:

  • 非常感谢!有关 netlify 的更多信息 - netlify.com/docs/redirects
  • 另外需要注意的是:如果您使用 react 或类似的东西来构建您的应用程序,_redirects 需要位于构建输出的根目录中(而不是项目目录的根目录) .这个愚蠢的错误花了我一段时间。此外,如果您喜欢 netlify.com/docs/netlify-toml-reference,您可以使用完整的 netlify 配置文件 netlify.toml 进行重定向
猜你喜欢
  • 2020-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-27
  • 2018-01-22
  • 1970-01-01
  • 1970-01-01
  • 2018-02-11
相关资源
最近更新 更多