GitHub Pages est la solution officielle de GitHub à ce problème.
raw.githubusercontentoblige tous les fichiers à utiliser le text/plaintype 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-pagesbranche (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-pagesbranche, vous pouvez éditer votre .gitignorefichier 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 masterbranche. 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 masteren 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