我试图使用Github页面来托管Doxygen网站。理想情况下,我希望能够将生成的文件和目录推送到Github而不必完全调整它们。但是,这意味着我的index.html位于存储库的子文件夹中,并且Github Pages没有提取它(当我尝试访问Pages网站时,我得到404)。有什么方法可以让Github在子文件夹中识别出index.html吗?这是一个项目网站。
答案 0 :(得分:36)
在根目录下创建一个虚拟index.html并将其放在标题中:
<meta http-equiv="refresh" content="0; url=https://repo.github.io/folder/index.html">
请务必更改目标网址。这将立即从index.html重定向到您的文件夹/ index.html。
答案 1 :(得分:10)
也许你想要的是推送一个子树。例如,假设您有build/dist
目录,并且在那里构建了Doxygen站点。
构建完成后,请确保提交该文件夹中的所有更改,然后执行以下操作。
git subtree push --prefix build/dist origin gh-pages
在gh-pages
分支机构,本地或原点上没有任何内容,这一点非常重要。
全部归功于:https://gist.github.com/cobyism/4730490
最初我还想到了重定向。但重定向感觉像代码味道,甚至http重定向。虽然有时候不可避免,但这可能是一个更清洁的解决方案,可能就是你在寻找的地方。
答案 2 :(得分:7)
您现在可以选择使用/docs
分支的master
文件夹作为github网页的根目录。
答案 3 :(得分:4)
要使用Doxygen
和gh-pages
,您需要:
.nojekyll
分支的根目录中创建文件gh-pages
.png
文件中删除了.html
,.gitignore
和类似内容最后,在项目的根目录中创建index.html
文件:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="1;url=html/index.html">
<title>Page Redirection</title>
</head>
<body>
If you are not redirected automatically,
follow the <a href="html/index.html">link to the documentation</a>
</body>
</html>
参考文献:
答案 4 :(得分:3)
David Jacquel的回答太棒了。
但是,如果您正试图像我一样从/dist
或/build
github页面的文件夹中提供整个SPA个人博客,那么Raphael Pedicini就是一个美丽的肮脏黑客: https://github.com/rafrex/spa-github-pages
他建议您创建代理index.html
页面和自定义404.html
页面。如果您的用户输入子页面的直接网址,例如https://example.github.io/blog/,github pages server将为404.html
提供脚本,这些脚本将url作为一组参数传递给代理index.html,从而启动SPA。
我不会在这里复制他的代码,因为它很可能会随着时间而改变。
答案 5 :(得分:2)
尝试将index.html文件及其所有依赖项转移到新的存储库中,然后将该存储库用作当前存储库中的子模块。目前github-pages希望在你的repo的根目录中找到一个index.html文件,它不能。
例如。我们可以说你当前的回购是“测试”。您创建一个新的回购说“网站”,将您的.html和其他文件转移到“网站”所需的文件中。回购。现在您需要使用&#39;网站&#39; repo作为测试中的一个子模块&#39;回购。
注意:在上述架构中,您只需要使用&#39; gh-pages&#39;您网站上的分行名称&#39;回购时考试&#39;仍然可以保留主分支。
上的小示例教程