问题
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 default www 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.
回答1:
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
masterbranch be the root directory of a repository’sgh-pagesbranch. This is useful for things like sites developed with Yeoman, or if you have a Jekyll site contained in themasterbranch 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
distdirectory from the project’s.gitignorefile (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-pagesbranch on GitHub.git subtree push --prefix dist origin gh-pagesBoom. 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
回答2:
Since August 2016 you can use /docs subfolder of the master branch for your sources.
So if you can tell to your site generator to use /docs in place of /build you are done (without subtree).
Note: As pointed out by @thislooksfun in the comment, this is valid only for project pages (like <username>.github.io/<projectname>), but not for user or organization pages (like <name>.github.io).
回答3:
push-dir will do it:
npm install push-direxample
push-dir --dir=build --branch=gh-pages
来源:https://stackoverflow.com/questions/36782467/set-subdirectory-as-website-root-on-github-pages