Cuando intento cambiar la referencia vinculada de un archivo JavaScript local a una versión sin procesar de GitHub, mi archivo de prueba deja de funcionar. El error es:
Se negó a ejecutar el script desde ... porque su tipo MIME (
text/plain
) no es ejecutable y la verificación estricta del tipo MIME está habilitada.
¿Hay alguna manera de deshabilitar este comportamiento o hay un servicio que permita vincular a los archivos sin formato de GitHub?
Código de trabajo:
<script src="bootstrap-wysiwyg.js"></script>
Código que no funciona:
<script src="https://raw.github.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js"></script>
javascript
github
AuthorProxy
fuente
fuente
rawgit
el caché nunca se actualiza .Respuestas:
No es una buena solución para esto, ahora, mediante el uso de jsdelivr.net .
Pasos :
raw.githubusercontent.com
acdn.jsdelivr.net
/gh/
antes de su nombre de usuario.branch
nombre.@version
(si no hace esto, obtendrá la última versión, lo que puede causar el almacenamiento en caché a largo plazo)Ejemplos :
Use esta URL para obtener la última versión:
Use esta URL para obtener una versión específica o confirmar hash:
Para entornos de producción , considere apuntar a una etiqueta específica o commit-hash en lugar de la rama. El uso del último enlace puede ocasionar el almacenamiento en caché a largo plazo del archivo, lo que hace que su enlace no se actualice a medida que avanza nuevas versiones. La vinculación a un archivo mediante commit-hash o etiqueta hace que el enlace sea exclusivo de la versión.
¿Por qué se necesita esto?
En 2013, GitHub comenzó a usar
X-Content-Type-Options: nosniff
, lo que instruye a los navegadores más modernos a aplicar una estricta verificación de tipo MIME. Luego devuelve los archivos sin formato en un tipo MIME devuelto por el servidor, evitando que el navegador use el archivo según lo previsto (si el navegador respeta la configuración).Para obtener información sobre este tema, consulte este hilo de discusión .
fuente
gist.githubusercontent.com
conrawgist.com
y tengo trabajo.Esto ya no es posible. GitHub ha deshabilitado explícitamente el hotlinking de JavaScript, y las versiones más nuevas de los navegadores respetan esa configuración.
Atención: el soporte de cabecera nosniff llegará a Chrome y Firefox
fuente
rawgithub.com
redirige arawgit.com
Entonces el ejemplo anterior ahora seríahttp://rawgit.com/user/package/master/link.min.js
fuente
GitHub Pages es la solución oficial de GitHub a este problema.
raw.githubusercontent
hace que todos los archivos usen eltext/plain
tipo MIME, incluso si el archivo es un archivo CSS o JavaScript. Por lo tanto, ir ahttps://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 lagh-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 lagh-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 sumaster
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 fusionarmaster
engh-pages
, reconstruir, comprometerse, y luego empuje.(protip: puedes fusionar y reconstruir en el mismo commit con estos pasos :)
fuente
Las respuestas anteriores responden claramente la pregunta, pero quiero proporcionar otra alternativa: una visión / enfoque diferente para resolver el problema similar.
También puede usar la extensión del navegador para eliminar el
X-Content-Type-Options
encabezado de respuesta para losraw.githubusercontent.com
archivos. Hay un par de extensiones del navegador para modificar los encabezados de respuesta.Si usa Requestly, puedo sugerir dos soluciones
Solución 1: use la regla Modificar encabezados y elimine el encabezado de respuesta
Pasos
Remove
->Response
->X-Content-Type-Options
Url
->Contains
->raw.githubusercontent.com
Solución 2: use la regla Reemplazar host
raw.githubusercontent.com
conrawgit.com
Mira esta captura de pantalla para más detalles
Cómo probar
Creamos un simple JS Fiddle para probar si podemos usar archivos github sin procesar como scripts en nuestro código. Aquí está el violín con el siguiente código
Si ve
Script evaluated successfully!
, significa que puede usar un archivo github sin procesar en su código. De lo contrario,Problem evaluating script
indica que hay algún problema al ejecutar el script desde la fuente github sin procesar.También escribí un artículo en el blog de Requestly sobre esto. Por favor refiéralo para más detalles.
¡¡Espero eso ayude!!
Descargo de responsabilidad: soy autor de Requestly. Así que puedes culpar por todo lo que no te gusta.
fuente
https://raw.githack.com/
encontrado este sitio suministra un CDN para
nosniff
encabezado httpmime type
por nombre exty este sitio:
https://rawgit.com/
fuente
Para hacer las cosas claras y cortas
//raw.githubusercontent.com
->//rawgit.com
Tenga en cuenta que esto lo maneja el hosting de desarrollo de rawgit y no su cdn para hosting de producción
fuente
https://raw.githubusercontent.com
->https://rawgit.com
De lo contrario, esta respuesta es más clara y funciona.Mi caso de uso fue cargar directamente ' bookmarklets ' desde mi cuenta de Bitbucket que tiene las mismas restricciones que Github. El trabajo que se me ocurrió fue AJAX para el script y ejecutar
eval
en la cadena de respuesta, el fragmento a continuación se basa en ese enfoque.Tenga en cuenta que la adición de
sourceURL
comentarios es permitir la depuración del script dentro de las herramientas de desarrollo del navegador.fuente
Cuando se carga un archivo en github, puede usarlo como fuente externa o alojamiento gratuito. Troy Alford lo ha explicado muy arriba. Pero para que sea más fácil, permítame decirle algunos pasos fáciles, luego puede usar un archivo sin formato github en su sitio:
Aquí está el enlace de su archivo:
https://raw.githubusercontent.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js
Ahora para ejecutarlo, debe eliminar https: // y el punto (.) Entre el contenido en bruto y githubuser
Me gusta esto:
rawgithubusercontent.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js
Ahora, cuando visite este enlace, obtendrá un enlace que se puede usar para llamar a su javascript:
Aquí está el enlace final:
https://rawgit.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js
Del mismo modo, si aloja un archivo CSS, debe hacerlo como se mencionó anteriormente. Es la forma más fácil de obtener un enlace simple para llamar a su archivo externo CSS o JavaScript alojado en Github.
Espero que esto sea útil.
URL de referencia: http://101helper.blogspot.com/2015/11/store-blogger-codes-on-github-boost-blogger-speed.html
fuente
Encontré que el error se mostró debido a los comentarios al comienzo del archivo. Puede resolver este problema, simplemente creando su propio archivo sin comentarios y presionando git, no muestra ningún error
Como prueba, puede probar estos dos archivos con el mismo código de paginación fácil:
sin comentario
con comentario
fuente
Tuve el mismo problema que tú, lo que hice fue cambiar a
Esto funciona para mi.
fuente
La forma más simple:
<script type="text/plain" src="http://raw.githubusercontent.com/user/repo/branch/file.js"></script>
Servido por GitHub,
y
muy
de confianza.Con
text/plain
sin
text/plain
fuente
raw.github.com
no es un acceso verdaderamente sin formato al activo de archivo, sino una vista representada por Rails. Entonces accederraw.github.com
es mucho más pesado de lo necesario. No sé por quéraw.github.com
se implementa como una vista de Rails. En lugar de solucionar este problema de ruta, GitHub agregó unX-Content-Type-Options: nosniff
encabezado.Solución alterna:
user.github.io/repo
fuente
raw.github.com
para cargar archivos, y luego github se dio cuenta de que se estaban utilizando como CDN, lo que les estaba causando demasiado tráfico. Como resultado, lo cambiaron a este tipo de representación con elX-Content-Type-Options: nosniff
encabezado, específicamente para evitar que las personas usen su servicio de esa manera.Alternativamente, si genera su marcado en el lado del servidor, puede buscar e inyectar. Por ejemplo, en JSTL podría hacer esto:
No permiten el enlace directo por una razón, por lo que probablemente sea una mala forma si quieres ser un buen ciudadano. Te sugiero que guardes en caché ese javascript y solo vuelvas a buscarlo periódicamente como mejor te parezca.
fuente
Ejemplo
original
cdn.jsdelivr.net
fuente