如何使用index.html将gh-pages部署为子目录的符号链接

时间:2016-02-21 01:26:54

标签: git github symlink github-pages

假设我在gh-pages或其他github网站repo中有以下目录结构:

-project-dir
-- index.html      # a symlink to mysite/index.html
-- mysite/
--- index.html     # actual source, references otherstuff
--- otherstuff/

我不想复制mysite /的内容,以便它全部位于顶层。在我的情况下,这是因为它是以特定格式自动生成的,如果它无法驻留在子目录中,则管理起来非常困难。

例如,为了使自定义域与gh-pages一起使用,我需要一个位于顶层目录的CNAME文件。但我可能还希望在目录结构中进一步向下的CNAME文件。只需将mysite上的内容复制到顶层即可覆盖此内容。

(这个例子有点简化。真正的例子涉及许多其他可以被覆盖的东西,并处理大量不应被复制的自动生成的组件。)

自然解决方案看起来像符号链接,但如果我将顶级index.html放入指向mysite/index.html的符号链接中,那么它会失败,因为GitHub无法正确处理符号链接。

将所有代码组织到子目录中并且将其放入顶级目录的标准解决方案是什么?

1 个答案:

答案 0 :(得分:0)

我不知道这个解决方案是否能够正常使用CNAME文件,但您可以通过在根目录中包含以下index.html来让GitHub Pages在您的gh-pages分支中提供子目录:

<!-- Redirect to mysite subdirectory -->
<meta HTTP-EQUIV="REFRESH" content="0; url=mysite/index.html">

请参阅here获取解释,并here查看类似的答案。他们都使用完整的URL,但我更喜欢使用相对URL。