Páginas do GitHub é a solução oficial do GitHub para esse problema.
raw.githubusercontent
faz com que todos os arquivos usem o text/plain
tipo MIME, mesmo se o arquivo for um arquivo CSS ou JavaScript. Portanto https://raw.githubusercontent.com/‹user›/‹repo›/‹branch›/‹filepath›
, não será o tipo MIME correto, mas um arquivo de texto simples e vinculá-lo via <link href="..."/>
ou <script src="..."></script>
não funcionará - o CSS não será aplicado / o JS não será executado.
O GitHub Pages hospeda seu repositório em um URL especial, então tudo que você precisa fazer é fazer o check-in de seus arquivos e enviar por push. Observe que, na maioria dos casos, as páginas do GitHub exigem que você se comprometa com um ramo especial gh-pages
,.
No seu novo site, normalmente https://‹user›.github.io/‹repo›
, todos os arquivos confirmados na gh-pages
ramificação (a confirmação mais recente) estão presentes nesse URL. Então, você pode vincular ao seu arquivo js via <script src="https://‹user›.github.io/‹repo›/file.js"></script>
, e este será o tipo MIME correto.
Você tem arquivos de compilação?
Pessoalmente, minha recomendação é executar esse ramo paralelamente master
. Nogh-pages
ramificação, você pode editar seu .gitignore
arquivo para fazer o check-in de todos os arquivos dist / build necessários para o seu site (por exemplo, se você possui arquivos compactados / minificados), mantendo-os ignorados em sua master
ramificação. Isso é útil porque você normalmente não deseja acompanhar as alterações nos arquivos de compilação no seu repositório regular. Toda vez que você quiser atualizar seus arquivos hospedados, simplesmente fundir master
em gh-pages
, reconstruir, cometer, e empurre.
(protip: você pode mesclar e reconstruir no mesmo commit com estas etapas :)
$ 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