git-将子目录设置为Github Pages上的网站根目录

我正在使用Github Pages托管和服务静态网站。

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

|_ source
|_ build
   |_index.html
 .gitignore
 config.rb
 Gemfile
 ...
 README.MD

username.github.io位于build/以下,因此我要使该默认路径为www

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

笔记:

  • 我没有自定义域,也没有计划为此目的获得一个。 如您所见,我正在尝试利用github提供的默认URL命名约定。
  • 不使用Jekyll或自动页面生成器功能。
Oriol asked 2020-06-30T02:37:25Z
3个解决方案
38 votes

有详细的要点和所有必需的步骤。

要点在这里:
[HTTPS://gist.GitHub.com/cob一扇门/4730490]


从要点

将子文件夹部署到GitHub Pages

有时您想在git gh-deploy path/to/your/site 分支上有一个子目录,作为存储库.gitignore分支的根目录。 这对于使用Yeoman开发的网站或您的master分支中包含Jekyll网站以及其余代码的网站很有用。

为了这个示例,我们假设包含您网站的子文件夹名为git gh-deploy path/to/your/site

第1步

从项目的.gitignore文件中删除git gh-deploy path/to/your/site 目录(Yeoman默认将其忽略)。

第2步

确保git知道您的子树(站点的子文件夹)。

git gh-deploy path/to/your/site

第三步

使用子树推送将其发送到GitHub上的git gh-deploy path/to/your/site 分支。

git gh-deploy path/to/your/site

繁荣。 如果您的文件夹名称不是git gh-deploy path/to/your/site ,则需要在上述每个命令中进行更改。


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

#!/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

通过它可以键入以下命令:

git gh-deploy path/to/your/site
CodeWizard answered 2020-06-30T02:38:49Z
19 votes

自2016年8月起,您可以使用<name>.github.io分支的<username>.github.io/<projectname>子文件夹作为源。

因此,如果您可以告诉您的站点生成器使用<username>.github.io/<projectname>代替<name>.github.io,那么您已经完成了(没有子树)。

注意:正如@thislooksfun在注释中指出的那样,这仅对项目页面(如<username>.github.io/<projectname>)有效,而对用户或组织页面(如<name>.github.io)无效。

Kpym answered 2020-06-30T02:39:18Z
-3 votes

push-dir可以做到:

npm install push-direxample
push-dir --dir=build --branch=gh-pages
RobLoach answered 2020-06-30T02:39:38Z
translate from https://stackoverflow.com:/questions/36782467/set-subdirectory-as-website-root-on-github-pages