GitHub Pages è la soluzione ufficiale di GitHub a questo problema.
raw.githubusercontent
fa in modo che tutti i file utilizzino il text/plain
tipo MIME, anche se il file è un file CSS o JavaScript. Quindi https://raw.githubusercontent.com/‹user›/‹repo›/‹branch›/‹filepath›
non sarà il tipo MIME corretto, ma piuttosto un file di testo in chiaro e collegandolo tramite <link href="..."/>
o <script src="..."></script>
non funzionerà: il CSS non si applicherà / il JS non funzionerà.
GitHub Pages ospita il tuo repository in un URL speciale, quindi tutto ciò che devi fare è archiviare i tuoi file e inviare. Tieni presente che nella maggior parte dei casi, GitHub Pages richiede di impegnarti in un ramo speciale,gh-pages
.
Sul tuo nuovo sito, che di solito è https://‹user›.github.io/‹repo›
, tutti i file sottoposti a commit nella gh-pages
filiale (il commit più recente) sono presenti in questo URL. Quindi puoi collegarti al tuo file js tramite <script src="https://‹user›.github.io/‹repo›/file.js"></script>
, e questo sarà il tipo MIME corretto.
Hai file di build?
Personalmente, la mia raccomandazione è di eseguire questo ramo parallelamente master
. Sul gh-pages
ramo, è possibile modificare il .gitignore
file per il check-in tutti i file dist / build avete bisogno per il tuo sito (ad esempio se una minified / file compilati), mentre mantenendoli ignorati sul master
ramo. Ciò è utile perché in genere non si desidera tenere traccia delle modifiche nei file di build nel repository normale. Ogni volta che si desidera aggiornare i file ospitati, semplicemente si fondono master
in gh-pages
, ricostruire, impegnarsi, e poi spingere.
(protip: puoi unire e ricostruire nello stesso commit con questi passaggi :)
$ 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