J'utilise Github Pages pour héberger et servir un site Web statique.
Le site Web statique a la structure de répertoire typique d'une application:
|_ source
|_ build
|_index.html
.gitignore
config.rb
Gemfile
...
README.MD
index.html
est sousbuild/
, donc je veux en faire le chemin par défaut www
.
Ainsi, lorsque les utilisateurs cliquent sur username.github.io
il rend le contenu dans ce sous-répertoire et pourtant il n'affiche pas "/ build"/sur l'URL, car il est défini comme dossier racine.
Remarques:
Il y a un Gist détaillé avec toutes les étapes requises.
The Gist est là:
https://Gist.github.com/cobyism/473049
Déployer un sous-dossier sur les pages GitHub
Parfois, vous voulez qu'un sous-répertoire sur la branche
master
soit le répertoire racine de la branchegh-pages
D'un référentiel. C'est utile pour des choses comme les sites développés avec Yeoman , ou si vous avez un site Jekyll contenu dans la branchemaster
à côté du reste de votre code.Pour cet exemple, supposons que le sous-dossier contenant votre site s'appelle
dist
.Étape 1
Supprimez le répertoire
dist
du fichier.gitignore
Du projet (il est ignoré par défaut par Yeoman).Étape 2
Assurez-vous que git connaît votre sous-arbre (le sous-dossier de votre site).
git add dist && git commit -m "Initial dist subtree commit"
Étape 3
Utilisez la sous-arborescence Push pour l'envoyer à la branche
gh-pages
Sur GitHub.git subtree Push --prefix dist Origin gh-pages
Boom. Si votre dossier ne s'appelle pas
dist
, vous devrez le modifier dans chacune des commandes ci-dessus.
Si vous le faites régulièrement, vous pouvez également créer un script contenant les éléments suivants quelque part sur votre chemin:
#!/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
Ce qui vous permet de taper des commandes comme:
git gh-deploy path/to/your/site
Depuis août 2016 vous pouvez utiliser /docs
sous-dossier de la branche master
pour vos sources.
Donc, si vous pouvez dire à votre générateur de site d'utiliser /docs
au lieu de /build
vous avez terminé (sans sous-arbre).
Remarque: Comme indiqué par @thislooksfun dans le commentaire, cela n'est valable que pour les pages de projet (comme <username>.github.io/<projectname>
), mais pas pour les pages utilisateur ou organisation (comme <name>.github.io
).