GitHub Pages adalah solusi resmi GitHub untuk masalah ini.
raw.githubusercontent
membuat semua file menggunakan text/plain
tipe MIME, bahkan jika file tersebut adalah file CSS atau JavaScript. Jadi https://raw.githubusercontent.com/‹user›/‹repo›/‹branch›/‹filepath›
bukan jenis MIME yang benar tetapi akan menjadi file plaintext, dan menghubungkannya melalui <link href="..."/>
atau <script src="..."></script>
tidak akan berfungsi — CSS tidak akan berlaku / JS tidak akan berjalan.
GitHub Pages meng-host repo Anda di URL khusus, jadi yang harus Anda lakukan adalah check-in file Anda dan tekan. Perhatikan bahwa dalam kebanyakan kasus, Halaman GitHub mengharuskan Anda untuk berkomitmen ke cabang khusus gh-pages
,.
Di situs baru Anda, yang biasanya https://‹user›.github.io/‹repo›
, setiap file yang dikomit ke gh-pages
cabang (komit terbaru) ada di url ini. Jadi, Anda dapat menautkan ke file js Anda melalui <script src="https://‹user›.github.io/‹repo›/file.js"></script>
, dan ini akan menjadi tipe MIME yang benar.
Apakah Anda sudah membuat file?
Secara pribadi, rekomendasi saya adalah menjalankan cabang ini secara paralel master
. Di gh-pages
cabang, Anda dapat mengedit .gitignore
file Anda untuk memeriksa semua file dist / build yang Anda butuhkan untuk situs Anda (misalnya jika Anda memiliki file yang diperkecil / dikompilasi), sambil tetap mengabaikannya di master
cabang Anda . Ini berguna karena Anda biasanya tidak ingin melacak perubahan dalam file membangun di repo reguler Anda. Setiap kali Anda ingin memperbarui file host, hanya menggabungkan master
ke dalam gh-pages
, membangun kembali, komit, dan kemudian mendorong.
(protip: Anda dapat menggabungkan dan membangun kembali di komit yang sama dengan langkah-langkah ini :)
$ 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