我可以将我的GitHub Pages index.html放在存储库的子文件夹中吗?

我可以将我的GitHub Pages index.html放在存储库的子文件夹中吗?,github,doxygen,github-pages,Github,Doxygen,Github Pages,我正在尝试使用GitHub页面来托管一个Doxygen站点。理想情况下,我希望能够将生成的文件和目录推送到GitHub,而无需对它们进行任何调整 然而,这意味着我的index.html位于存储库的一个子文件夹中,而GitHub Pages无法获取它(当我尝试访问Pages站点时,我得到了404)。有没有办法让GitHub在index.html位于子文件夹中时识别它 这是一个项目站点。在根目录下创建一个虚拟index.html,并将其放在标题中: <meta http-equiv="refr

我正在尝试使用GitHub页面来托管一个Doxygen站点。理想情况下,我希望能够将生成的文件和目录推送到GitHub,而无需对它们进行任何调整

然而,这意味着我的index.html位于存储库的一个子文件夹中,而GitHub Pages无法获取它(当我尝试访问Pages站点时,我得到了404)。有没有办法让GitHub在index.html位于子文件夹中时识别它


这是一个项目站点。

在根目录下创建一个虚拟index.html,并将其放在标题中:

<meta http-equiv="refresh" content="0; url=https://repo.github.io/folder/index.html">

请确保更改目标URL。这将立即从index.html重定向到您的文件夹/index.html。

尝试将index.html文件及其所有依赖项转移到新的存储库中,然后将该存储库用作当前存储库中的子模块。目前,GitHub Pages希望在存储库的根目录中找到index.html文件,但它无法找到

例如,假设您当前的回购是“测试”。您创建一个新的存储库,比如“网站”,将您的.html和其他需要的文件传输到“网站”存储库。现在,您需要将“网站”存储库用作“测试”存储库中的子模块

Mote:在上述模式中,您只需要在“网站”存储库中使用“gh pages”分支名称,而“test”仍然可以保留主分支


关于的一个小示例教程。

也许你想推一个子树。例如,假设您有
build/dist
目录,并且在那里构建了Doxygen站点

生成后,要确保提交该文件夹中的所有更改,请执行以下操作

git subtree push --prefix build/dist origin gh-pages
重要的是,您在
gh页面
分支、本地或来源上没有任何内容

所有功劳都归于:


最初我还想到了重定向。但是重定向感觉像是代码的味道,甚至HTTP重定向。尽管有时不可避免,但这里可能有一个更干净的解决方案,这可能正是您想要的。

您现在可以选择使用
master
分支的
/docs
文件夹作为GitHub Pages网站的根目录。

这太棒了

但是,如果你想像我一样从GitHub页面的
/dist
/build
文件夹中为你的整个SPA个人博客提供服务,那就有了

他建议您创建一个代理
index.html
页面和自定义
404.html
页面。如果用户输入子页面的直接URL,例如,GitHub Pages服务器将提供
404.html
,脚本将URL作为一组参数传递给proxy index.html,后者将启动SPA


我不会在这里复制他的代码,因为它很可能会随着时间的推移而改变。

要使用
Doxygen
gh页面
,您需要:

  • gh页面
    分支的根目录中创建文件
    .nojekyll
  • 确保从
    .gitignore
    文件中删除了
    .png
    .html
    和类似文件
  • 最后,在项目根目录中创建
    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>
    
    
    页面重定向
    如果没有自动重定向,
    遵循
    
  • 参考资料: