在Github Pages上将子目录设置为网站根目录 [英] Set subdirectory as website root on Github Pages
问题描述
我使用 Github Pages 托管&服务一个静态网站。
静态网站具有典型的应用程序目录结构:
| _ source
| _ build
| _index.html
.gitignore
config.rb
Gemfile
...
README.MD
index.html
是在 build /
之下,所以我想将它作为默认的 www
路径。
因此,当用户点击 username.github.io
时,它会呈现该子目录内的内容,但它不会显示/ build/ on注意:
我没有自定义域,也没有计划为此目的获得一个域。正如您所看到的,我试图利用github提供的默认URL命名约定。 未使用 Jekyll 和自动页面生成器功能。 有详细的要点与所有必要的步骤。
从要点
将子文件夹部署到GitHub页面
有时候你想要在
master
分支上有一个子目录是存储库的gh-pages
分支的根目录。这对于使用 Yeoman 开发的网站,或者如果您在中包含Jekyll网站, master
分支与您的其他代码一起。
为了说明这个例子,假设包含您站点的子文件夹名为
dist
。
第1步
移除
dist
目录从项目的.gitignore
文件(它由默曼默认忽略)。
第2步
确保git知道您的子树(子网站与您的网站)。
git add dist&& git commit -mInitial dist subtree commit
第3步
使用子树推送将它发送到GitHub上的
gh-pages
分支。git subtree push --prefix dist origin gh-pages
繁荣。如果您的文件夹没有被称为
dist
,那么您需要在上面的每个命令中更改它。
如果你经常这样做,你也可以创建一个脚本,其中包含以下路径中的以下内容:
< blockquote>
#!/ bin / sh
if [-z$ 1]
then
echo 你想要将哪个文件夹部署到GitHub页面?
exit 1
fi
git subtree push --prefix $ 1 origin gh-pages
它可以让你输入如下命令:
git gh-deploy path / to / your / site
I'm using Github Pages to host & serve a static website.
The static website has the typical directory structure for an app:
|_ source |_ build |_index.html .gitignore config.rb Gemfile ... README.MD
index.html
is underbuild/
, so I want to make that the defaultwww
path.So when users hit
username.github.io
it renders the content within that subdirectory and yet it doesn't show "/build"/ on the URL, cause that's set as the root folder.Notes:
- I don't have a custom domain nor planning to get one for this purpose. As you can see, I'm trying to leverage the default URL naming convention github provides.
- Not using Jekyll nor the automatic page generator function.
解决方案There is a detailed gist with all the required steps.
The gist is here:
https://gist.github.com/cobyism/4730490
From the gist
Deploying a subfolder to GitHub Pages
Sometimes you want to have a subdirectory on the
master
branch be the root directory of a repository’sgh-pages
branch. This is useful for things like sites developed with Yeoman, or if you have a Jekyll site contained in themaster
branch alongside the rest of your code.For the sake of this example, let’s pretend the subfolder containing your site is named
dist
.Step 1
Remove the
dist
directory from the project’s.gitignore
file (it’s ignored by default by Yeoman).Step 2
Make sure git knows about your subtree (the subfolder with your site).
git add dist && git commit -m "Initial dist subtree commit"
Step 3
Use subtree push to send it to the
gh-pages
branch on GitHub.git subtree push --prefix dist origin gh-pages
Boom. If your folder isn’t called
dist
, then you’ll need to change that in each of the commands above.
If you do this on a regular basis, you could also create a script containing the following somewhere in your path:
#!/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
Which lets you type commands like:
git gh-deploy path/to/your/site
这篇关于在Github Pages上将子目录设置为网站根目录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!