我可以在存储库的子文件夹中包含我的Github Pages index.html吗?

时间:2014-08-15 02:16:15

标签: github doxygen github-pages

我试图使用Github页面来托管Doxygen网站。理想情况下,我希望能够将生成的文件和目录推送到Github而不必完全调整它们。但是,这意味着我的index.html位于存储库的子文件夹中,并且Github Pages没有提取它(当我尝试访问Pages网站时,我得到404)。有什么方法可以让Github在子文件夹中识别出index.html吗?这是一个项目网站。

6 个答案:

答案 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)

要使用Doxygengh-pages,您需要:

  1. .nojekyll分支的根目录中创建文件gh-pages
  2. 确保从.png文件中删除了.html.gitignore和类似内容
  3. 最后,在项目的根目录中创建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>
    

参考文献:

  1. GitHub Pages (github.io) doxygen generated page not found (404)
  2. How to automatically generate doxygen documentation using Travis
  3. Auto-deploying Doxygen documentation to gh-pages with Travis CI
  4. https://help.github.com/categories/github-pages-basics/
  5. Publish Your Project Documentation with GitHub Pages
  6. How to make an introduction page with Doxygen

答案 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;仍然可以保留主分支。

git submodules

上的小示例教程