helmet - Recursos de enlace directo como archivos JavaScript directamente desde GitHub
react helmet seo (2)
Esta pregunta ya tiene una respuesta aquí:
Hice una pregunta sobre la inclusión de recursos de GitHub y la respuesta fue usar el enlace en bruto:
https://raw.github.com/username/repository/branch/file.js
Estoy tratando de incluir un script usando:
<script
type="text/javascript"
src="https://raw.github.com/username/repo/master/src/file.js"
></script>
pero me sale el siguiente error:
Se negó a ejecutar el script desde '' https://raw.github.com/username/repo/master/src/file.js '' porque su tipo MIME (''text / plain'') no es ejecutable, y la comprobación estricta de tipos MIME está habilitada .
¿Hay alguna alternativa para solucionar este error?
Ejemplo de uso
No uso esto en la producción sino para una página de demostración:
project-repository-from-github
├─ master
│ ├─ src
│ │ └─ my-jQuery-plugin.js
│ └─ README.md
└─ gh-pages
├─ css
│ └─ style.css
└─ index.html
En la página index.html quiero tener la última versión de my-jQuery-plugin.js. Por lo tanto, incluiría la URL en bruto al script.
¿Cómo soluciono el error?
La mejor solución para mí que encontré es usar las páginas de GitHub: https://pages.github.com/
La restricción es que puedes usar solo una rama del repositorio para mantener tus scripts (a saber: rama gh-pages)
uso de la muestra
Presione el script test.js a la rama de gh-pages de la REPO.
la secuencia de comandos está disponible en su nombre de usuario.github.io/REPO/test.js (puede tardar unos 10 minutos en actualizarse)
Otras soluciones
http://rawgithub.com es bueno tanto para el desarrollo como para la producción (con CDN) si no cambia sus scripts (el CDN almacena en caché una URL en particular para siempre).
Sí, Github cambió esto en abril de 2013 :
X-Content-Type-Options: nosniff
encabezadoX-Content-Type-Options: nosniff
a nuestras respuestas de URL sin procesar en 2011 como primer paso para combatir el hotlinking. Esto tiene el efecto de forzar al navegador a tratar el contenido de acuerdo con el encabezadoContent-Type
. Eso significa que cuando configuramosContent-Type: text/plain
para vistas en bruto de archivos, el navegador rechazará tratar ese archivo como JavaScript o CSS.
Pero gracias a http://combinatronics.com/ podemos incluir scripts de GH. El único cambio es de raw.github.com
que se convierte en combinatronics.com
:
<script
type="text/javascript"
src="https://combinatronics.com/username/repo/master/src/file.js"
></script>
El proyecto está alojado en Github siendo de código abierto .
Y sí, @Lix es correcto. Los archivos no se sirven desde Github sino desde combinatronics.
Otra solución que encontré es que en lugar de:
<script
type="text/javascript"
src="https://combinatronics.com/username/repo/master/src/file.js"
></script>
Puedes usar la función $.getScript
jQuery:
<script>
$.getScript("https://combinatronics.com/username/repo/master/src/file.js", function () {
/* do something when loaded */
});
</script>