首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Github Pages中是否有配置允许您将所有内容重定向到单页应用程序的index.html?

Github Pages中是否有配置允许您将所有内容重定向到单页应用程序的index.html?
EN

Stack Overflow用户
提问于 2016-03-30 06:09:37
回答 6查看 6.8K关注 0票数 12

我正在尝试发布我的SPA应用程序,它在本地运行良好,但当我将其推送到Github页面时,如果您直接导航到内部页面,则它们不会注册。

例如,http://USER.github.io/PROJECT_NAME/可以工作,但http://USER.github.io/PROJECT_NAME/about不能,因为没有重定向或重写。index.html位于项目的根目录下。

EN

回答 6

Stack Overflow用户

发布于 2016-03-30 14:46:50

Github pages允许您创建一个404.html页面,该页面将在每次...出现404错误。如果http://USER.github.io/PROJECT_NAME/about不存在,它会将您的404.html内容与“未找到”url显示为window.location

因此,此页面可以包含重定向到hashbang样式路由脚本。例如: react路由器,即使使用干净的urls (browserHistory)也可以理解像PROJECT_NAME/#/about这样的路由,并自动推送到PROJECT_NAME/about

太难看了!

票数 5
EN

Stack Overflow用户

发布于 2016-08-23 01:19:38

我刚刚构建了这个小包(为bower / npm)来解决这个问题,所以我想我应该在这里分享它来回答你的问题。

https://github.com/websemantics/gh-pages-spa

如果您在404.htmlindex.html页面中包含该程序包,它会将所有流量重定向到Index.html

它支持项目用户/组织页面类型的存储库,处理QueryStrings,并提供了一个工作示例。

票数 5
EN

Stack Overflow用户

发布于 2020-01-10 16:10:13

如果您正在创建react应用程序,并且您想在gh页面中使用浏览器路由器,那么解决方案是在您的根目录中创建404.html文件,并在构建您的react-app之后将index.html中的所有内容复制到404.html。

当用户尝试访问您的页面时,例如https://successtar.github.io/teamwork/ GitHub将为您的index.html页面提供服务,而如果用户尝试访问https://successtar.github.io/teamwork/foo,由于它不存在,GitHub将提供与index.html内容相同的404.html页面,这样您就可以让您的react应用程序按预期工作。

以下是示例https://github.com/successtar/teamwork/tree/gh-pages的源代码

更新

您可以在每次运行npm run build时自动执行该过程,以自动生成404.html文件。

第一步:为跨平台命令安装shx,如下所示的npm install shx --save-dev

第二步:转到脚本块中的package.json,将"build": "react-scripts build"替换为"build": "react-scripts build && shx cp build/index.html build/404.html"

这就是全部。

无论何时运行npm run build,都会自动生成404.html文件。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36296012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档