GitHub Pages to oficjalne rozwiązanie tego problemu przez GitHub.
raw.githubusercontent
sprawia, że wszystkie pliki używają text/plain
typu MIME, nawet jeśli plik jest plikiem CSS lub JavaScript. Zatem https://raw.githubusercontent.com/‹user›/‹repo›/‹branch›/‹filepath›
nie będzie to poprawny typ MIME, ale zamiast tego plik tekstowy i połączenie go za pomocą <link href="..."/>
lub <script src="..."></script>
nie będzie działać - CSS nie będzie obowiązywał / JS nie będzie działać.
Strony GitHub utrzymują Twoje repozytorium pod specjalnym adresem URL, więc wszystko, co musisz zrobić, to sprawdzić swoje pliki i wypchnąć. Należy zauważyć, że w większości przypadków, GitHub Strony wymaga, aby zobowiązać się do specjalnego oddziału gh-pages
.
W nowej witrynie, którą zwykle jest https://‹user›.github.io/‹repo›
każdy plik przypisany do gh-pages
oddziału (najnowsze zatwierdzenie), znajduje się w tym adresie URL. Więc możesz połączyć się z plikiem js przez <script src="https://‹user›.github.io/‹repo›/file.js"></script>
, a to będzie prawidłowy typ MIME.
Czy masz pliki kompilacji?
Osobiście zalecam równoległe uruchomienie tej gałęzi master
. W gh-pages
oddziale możesz edytować swój .gitignore
plik, aby sprawdzić wszystkie pliki dist / build, których potrzebujesz na swojej stronie (np. Jeśli masz jakieś zminimalizowane / skompilowane pliki), jednocześnie ignorując je w master
oddziale. Jest to przydatne, ponieważ zazwyczaj nie chcesz śledzić zmian w plikach kompilacji w swoim zwykłym repozytorium. Za każdym razem, gdy chcesz zaktualizować hostowane pliki, po prostu połącz master
się gh-pages
, przebuduj, zatwierdź, a następnie wypchnij.
(protip: możesz scalić i przebudować w tym samym zatwierdzeniu wykonując te kroki :)
$ 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