GitHub Pages ist die offizielle Lösung von GitHub für dieses Problem.
raw.githubusercontent
Alle Dateien verwenden den text/plain
MIME-Typ, auch wenn es sich bei der Datei um eine CSS- oder JavaScript-Datei handelt. Es https://raw.githubusercontent.com/‹user›/‹repo›/‹branch›/‹filepath›
wird also nicht der richtige MIME-Typ sein, sondern eine Klartextdatei, und die Verknüpfung über <link href="..."/>
oder <script src="..."></script>
funktioniert nicht - das CSS wird nicht angewendet / das JS wird nicht ausgeführt.
GitHub Pages hostet Ihr Repo unter einer speziellen URL. Sie müssen also nur Ihre Dateien einchecken und pushen. Beachten Sie, dass Sie für GitHub Pages in den meisten Fällen einen speziellen Zweig festlegen müssen gh-pages
.
Auf Ihrer neuen Site befindet sich normalerweise https://‹user›.github.io/‹repo›
jede für den gh-pages
Zweig festgeschriebene Datei (die letzte Festschreibung) unter dieser URL. Dann können Sie über auf Ihre js-Datei verlinken <script src="https://‹user›.github.io/‹repo›/file.js"></script>
, und dies ist der richtige MIME-Typ.
Haben Sie Build-Dateien?
Persönlich empfehle ich, diesen Zweig parallel zu zu betreiben master
. In der gh-pages
Verzweigung können Sie Ihre .gitignore
Datei bearbeiten , um alle für Ihre Site erforderlichen dist / build-Dateien einzuchecken (z. B. wenn Sie minimierte / kompilierte Dateien haben), während Sie diese in Ihrer master
Verzweigung ignorieren . Dies ist nützlich, da Sie normalerweise keine Änderungen an Build-Dateien in Ihrem regulären Repo verfolgen möchten. Jedes Mal , wenn Sie möchten , dass Ihre gehosteten Dateien zu aktualisieren, einfach fusionieren master
zu gh-pages
, wieder aufzubauen, verpflichten, und dann drücken.
(protip: Mit diesen Schritten können Sie im selben Commit zusammenführen und neu erstellen :)
$ 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