在Github Pages上将子目录设置为网站根目录

Ori*_*iol 49 git webserver github github-pages server

我正在使用Github Pages来托管和提供静态网站.

静态网站具有应用程序的典型目录结构:

|_ source
|_ build
   |_index.html
 .gitignore
 config.rb
 Gemfile
 ...
 README.MD
Run Code Online (Sandbox Code Playgroud)

index.html是的build/,所以我想把它作为默认www路径.

因此,当用户点击username.github.io它时,会在该子目录中呈现内容,但它不会在URL上显示"/ build"/,因此将其设置为根文件夹.

笔记:

  • 我没有自定义域名,也没有计划为此目的获得一个域名.如您所见,我正在尝试利用github提供的默认URL命名约定.
  • 不使用Jekyll也不使用自动页面生成器功能.

Cod*_*ard 41

有一个详细的要点,包含所有必需的步骤.

要点在这里:https:
//gist.github.com/cobyism/4730490


从要点

将子文件夹部署到GitHub页面

有时您希望master分支上的子目录是存储库gh-pages分支的根目录.这对于像Yeoman开发的网站这样的东西很有用,或者如果你master的代码中包含了一个包含在分支中的Jekyll网站.

为了这个例子,让我们假装包含你的站点的子文件夹被命名dist.

步骤1

dist从项目的.gitignore文件中删除目录(默认由Yeoman忽略).

第2步

确保git知道你的子树(你的网站的子文件夹).

git add dist && git commit -m "Initial dist subtree commit"
Run Code Online (Sandbox Code Playgroud)

第3步

使用子树推送将其发送到gh-pagesGitHub上的分支.

git subtree push --prefix dist origin gh-pages
Run Code Online (Sandbox Code Playgroud)

繁荣.如果未调用您的文件夹dist,则需要在上面的每个命令中更改它.


如果您定期执行此操作,还可以在路径中的某处创建包含以下内容的脚本:

#!/bin/sh
if [ -z "$1" ]
then
  echo "Which folder do you want to deploy to GitHub Pages?"
  exit 1
fi
git subtree push --prefix $1 origin gh-pages
Run Code Online (Sandbox Code Playgroud)

这允许您键入以下命令:

git gh-deploy path/to/your/site
Run Code Online (Sandbox Code Playgroud)

  • 经过进一步研究,没有办法完成我最初的要求。如果您希望 build 文件夹的内容出现在 username.github.io 中,则需要将其内容放入根目录中。否则使用上面的解决方案。 (2认同)

Kpy*_*pym 21

自2016年8月起,您可以使用分支的/docs子文件夹作为master源.

因此,如果您可以告诉您的站点生成器/docs代替/build您使用(没有子树).

注意:正如@thislooksfun在评论中所指出的,这仅适用于项目页面(如<username>.github.io/<projectname>),但不适用于用户或组织页面(如<name>.github.io).

  • 值得注意的是,这仅适用于非用户/组织站点。更具体地说,“要从master分支上的/ docs文件夹发布站点的源文件,您必须具有master分支,并且存储库不得遵循存储库命名方案&lt;username&gt; .github.io或&lt;orgname&gt; .github。 io”(https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/) (2认同)

Avi*_*han 14

这是一个新的解决方案(测试版)。

转到 Github Pages 设置选项卡,现在将源更改为“Github Actions”

转到 Github Pages 设置选项卡,现在将源更改为“Github Actions”

接下来,它会让您选择和配置要使用的操作(Jekyll 或静态 HTML)。我选择了静态 HTML,您需要在此处进行一个但重要的更改。

默认情况下,路径设置为“.” (当前目录)。您需要将其更改为与您相关的子文件夹。

默认情况下,路径设置为“.”  (当前目录)。 您需要将其更改为与您相关的子文件夹。

就我而言,我有一个名为 的文件夹javadocs,其中包含相关的 HTML。现在保存更改,然后将提交推送到主页面或手动运行操作以查看实时页面!

  • 对我来说,当我应用此设置时,它仍然根据主目录中的 README.md 生成一个站点,并将子目录放在根目录下。然而,修改“actions/jekyll-build-pages@v1”操作上的“source”确实像您所描述的那样工作。 (2认同)