GitHub Pages es la solución oficial de GitHub a este problema.
raw.githubusercontent
hace que todos los archivos usen el text/plain
tipo MIME, incluso si el archivo es un archivo CSS o JavaScript. Por lo tanto, ir a https://raw.githubusercontent.com/‹user›/‹repo›/‹branch›/‹filepath›
no será el tipo MIME correcto, sino un archivo de texto sin formato, y vincularlo a través de <link href="..."/>
o <script src="..."></script>
no funcionará: el CSS no se aplicará / el JS no se ejecutará.
GitHub Pages aloja su repositorio en una URL especial, por lo que todo lo que tiene que hacer es registrar sus archivos y presionar. Tenga en cuenta que en la mayoría de los casos, GitHub Páginas requiere que se comprometan a una rama especial, gh-pages
.
En su nuevo sitio, que generalmente es https://‹user›.github.io/‹repo›
, todos los archivos comprometidos con la gh-pages
rama (el compromiso más reciente) están presentes en esta url. Entonces puede vincular a su archivo js a través <script src="https://‹user›.github.io/‹repo›/file.js"></script>
, y este será el tipo MIME correcto.
¿Tienes archivos de compilación?
Personalmente, mi recomendación es ejecutar esta rama paralela a master
. En la gh-pages
rama, puede editar su .gitignore
archivo para registrar todos los archivos dist / build que necesita para su sitio (por ejemplo, si tiene archivos minificados / compilados), mientras los mantiene ignorados en su master
rama. Esto es útil porque normalmente no desea realizar un seguimiento de los cambios en los archivos de compilación en su repositorio habitual. Cada vez que desee actualizar sus archivos alojados, sólo tiene que fusionar master
en gh-pages
, reconstruir, comprometerse, y luego empuje.
(protip: puedes fusionar y reconstruir en el mismo commit con estos pasos :)
$ 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