【问题标题】:Gatsby website displays 404 page for other github pages reposGatsby 网站显示 404 页面用于其他 github 页面 repos
【发布时间】:2019-02-11 01:39:54
【问题描述】:
我正在使用 Github Pages 和 Netlify 来托管我的网站。这是一个使用 Gatsby 的静态站点。我也在使用自定义域。一切都适用于主站点。索引和所有其他页面按预期显示。
但是,我有其他使用 github 页面的存储库,我设置它们也使用我的域。当点击链接打开项目页面时,它会转到我的网站 404 页面。当我使用 github 页面为项目提供的网站的默认 url 时,加载正常。
【问题讨论】:
标签:
javascript
url-routing
github-pages
gatsby
netlify
【解决方案1】:
有一些方法可以解决这个问题,但取决于您的用例和您想要提供链接的方式。
子域解决方案
为页面设置您的 GitHub 页面子域
CNAME
mysub.example.com
在您的 DNS 中为 mysub 名称创建一个 CNAME 条目,并将其值设为 YOUR-GITHUB-USERNAME.github.io,将 YOUR-GITHUB-USERNAME 替换为您在 github 上的用户名。
重定向解决方案
在构建文件夹的根目录中包含一个 _redirects 文件,以便 Netlify 提供您想要 proxy 的路径。
_redirects
/mysub/* https://username.github.io/:splat 200!
注意:在 Gatsby 中,您将重定向放在 static/_redirects。如果您在 Gatsby 项目中使用 gatsby-plugin-netlify,您可以选择在该配置中设置上述配置 (see readme),但上述配置仍然兼容。