GitHub Pages est la solution officielle de GitHub à ce problème.
raw.githubusercontent
oblige tous les fichiers à utiliser le text/plain
type MIME, même s'il s'agit d'un fichier CSS ou JavaScript. Donc, aller https://raw.githubusercontent.com/‹user›/‹repo›/‹branch›/‹filepath›
ne sera pas le type MIME correct, mais un fichier en clair et le lier via <link href="..."/>
ou <script src="..."></script>
ne fonctionnera pas - le CSS ne s'appliquera pas / le JS ne fonctionnera pas.
GitHub Pages héberge votre dépôt à une URL spéciale, donc tout ce que vous avez à faire est d'archiver vos fichiers et de pousser. Notez que dans la plupart des cas, GitHub Pages vous oblige à vous engager dans une branche spéciale,gh-pages
.
Sur votre nouveau site, qui est généralement https://‹user›.github.io/‹repo›
, tous les fichiers validés dans la gh-pages
branche (le commit le plus récent) sont présents à cette URL. Vous pouvez donc créer un lien vers votre fichier js via <script src="https://‹user›.github.io/‹repo›/file.js"></script>
, et ce sera le type MIME correct.
Avez-vous des fichiers de construction?
Personnellement, ma recommandation est d'exécuter cette branche parallèlement à master
. Sur la gh-pages
branche, vous pouvez éditer votre .gitignore
fichier pour archiver tous les fichiers dist / build dont vous avez besoin pour votre site (par exemple si vous avez des fichiers minifiés / compilés), tout en les ignorant sur votre master
branche. Ceci est utile car vous ne souhaitez généralement pas suivre les modifications apportées aux fichiers de build dans votre référentiel standard. Chaque fois que vous souhaitez mettre à jour vos fichiers hébergés, fusionner simplement master
en gh-pages
, reconstruire, engager, puis pousser.
(protip: vous pouvez fusionner et reconstruire dans le même commit avec ces étapes :)
$ git checkout gh-pages
$ git merge --no-ff --no-commit master # prepare the merge but don’t commit it (as if there were a merge conflict)
$ npm run build # (or whatever your build process is)
$ git add . # stage the newly built files
$ git merge --continue # commit the merge
$ git push origin gh-pages