【问题标题】:How to deploy in gh-pages with index.html as a symlink to a subdirectory如何在 gh-pages 中部署 index.html 作为子目录的符号链接
【发布时间】:2016-06-02 13:19:24
【问题描述】:

假设我在 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 没有正确处理符号链接。

将所有代码组织到子目录中而不是放在顶级目录中的标准解决方案是什么?

【问题讨论】:

    标签: git github symlink github-pages


    【解决方案1】:

    我不知道这个解决方案是否能与 CNAME 文件一起正常工作,但您可以让 GitHub Pages 为您的 gh-pages 分支中的子目录提供服务,方法是在根目录中添加以下 index.html:

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

    请参阅here 以获得解释,here 以获得类似的 SO 答案。它们都使用完整的 URL,但我更喜欢使用相对 URL。

    【讨论】:

      猜你喜欢
      • 2020-09-17
      • 2013-07-18
      • 2022-01-23
      • 2021-05-20
      • 1970-01-01
      • 1970-01-01
      • 2018-12-09
      • 2019-01-25
      • 1970-01-01
      相关资源
      最近更新 更多