加载网站目录级页面时出现问题
Problem loading directory level pages of website
我刚刚通过 github 页面部署了我的 create-react-app。单击进入根 domain 或在浏览器的 URL 地址栏中输入根 domain 时,站点 (jasonclerk.com) 加载正常。但是,如果深层链接到目录级页面 (jasonclerk.com/about) 或在 URL 地址栏中输入该目录级页面,我会遇到 404 错误。如果我使用网站内的导航,我可以毫无问题地转到其他页面。
我确实在我的顶级组件中使用了路由(react-router-dom),所有这些在本地测试环境中都运行良好。此外,之前通过 heroku 部署了该站点,并且深层链接没有任何问题。现在部署在 ghpages 上,所以我可以添加自定义 domain.
有什么建议可以解决直接加载目录级页面的问题吗?
react-router
是客户端路由的一个很好的例子。您遇到此问题是因为 GitHub 页面服务器不知道您正在构建客户端路由应用程序。从服务器的角度来看,它无法识别 /about
。有 2 种方法可以解决您的问题。
使用 HashRouter
而不是 BrowserRouter
,URL 最终会不那么漂亮,但是因为它使用哈希,所以你不需要做任何事情服务器端特殊。
按照此 guide 此处为 Github 页面实施“hacky”解决方案。基本上,您在 404.html
中添加一个脚本(即页面 GitHub 将在收到 404 错误时显示),这会将所有请求重定向到您的 index.html
.
我刚刚通过 github 页面部署了我的 create-react-app。单击进入根 domain 或在浏览器的 URL 地址栏中输入根 domain 时,站点 (jasonclerk.com) 加载正常。但是,如果深层链接到目录级页面 (jasonclerk.com/about) 或在 URL 地址栏中输入该目录级页面,我会遇到 404 错误。如果我使用网站内的导航,我可以毫无问题地转到其他页面。
我确实在我的顶级组件中使用了路由(react-router-dom),所有这些在本地测试环境中都运行良好。此外,之前通过 heroku 部署了该站点,并且深层链接没有任何问题。现在部署在 ghpages 上,所以我可以添加自定义 domain.
有什么建议可以解决直接加载目录级页面的问题吗?
react-router
是客户端路由的一个很好的例子。您遇到此问题是因为 GitHub 页面服务器不知道您正在构建客户端路由应用程序。从服务器的角度来看,它无法识别 /about
。有 2 种方法可以解决您的问题。
使用
HashRouter
而不是BrowserRouter
,URL 最终会不那么漂亮,但是因为它使用哈希,所以你不需要做任何事情服务器端特殊。按照此 guide 此处为 Github 页面实施“hacky”解决方案。基本上,您在
404.html
中添加一个脚本(即页面 GitHub 将在收到 404 错误时显示),这会将所有请求重定向到您的index.html
.