En la cabecera de mi página HTML, tengo:
<script src="https://raw.github.com/cloudhead/less.js/master/dist/less-1.3.3.js"></script>
Cuando cargo la página en mi navegador (Google Chrome v 27.0.1453.116) y habilito las herramientas de desarrollador, dice:
Se negó a ejecutar el script desde ' https://raw.github.com/cloudhead/less.js/master/dist/less-1.3.3.js ' porque su tipo MIME ('text / plain') no es ejecutable, y La verificación estricta del tipo MIME está habilitada.
De hecho, el script no se ejecutará. ¿Por qué Chrome cree que este es un archivo de texto sin formato? Claramente tiene una .js
extensión de archivo.
Como estoy usando HTML5, omití el type
atributo, así que pensé que podría estar causando el problema. Así que agregué type="text/javascript"
a la <script>
etiqueta y obtuve el mismo resultado. Incluso lo intenté type="application/javascript"
y todavía recibí el mismo error.
Luego intenté cambiarlo type="text/plain"
por curiosidad. El navegador no devolvió un error, pero, por supuesto, JavaScript tampoco se ejecutó.
Finalmente, pensé que los puntos en el nombre del archivo podrían estar apagando el navegador. Entonces, en mi código HTML, cambié todos los puntos al carácter de escape de URL %2E
:
<script src="https://raw.github.com/cloudhead/less%2Ejs/master/dist/less-1%2E3%2E3.js"></script>
Esto todavía no funcionó. Lo único que realmente funciona (es decir, el navegador no da un error y el JS se ejecuta con éxito) es si descargo el archivo, lo subo a un directorio local y luego cambio el src
valor al archivo local. Prefiero no hacer esto ya que estoy tratando de ahorrar espacio en mi propio sitio web.
¿Cómo hago para que Chrome reconozca que el archivo vinculado es en realidad un tipo de JavaScript?
fuente
Diciembre 2018 editar
RawGit ahora se está cayendo debido al uso malicioso, por lo que recomiendan usar uno de los siguientes servicios:
Publicación original
Rawgithub.com permite a los usuarios tomar las versiones "Raw" de un Git y convertirlo en una URL que se pueda usar en las
<script>
etiquetas. Es bastante fácil de usar, simplemente elimine el primero.
de la URL sin procesar. Por ejemplo, esto:se convertiría en esto
y luego lo pones en una
<script>
etiqueta con el tipo apropiado. Así de simple!Limitan el número de solicitudes porque está destinado únicamente a fines de desarrollo, no a producción.
2014 editar
Como mencionó Reinderien, rawgithub ahora es solo rawgit, por lo que el nuevo enlace del script sería
fuente
La extensión del archivo es irrelevante, lo que importa es el encabezado Content-Type, y ese archivo se sirve con un
text/plain
tipo de contenido (que es el propósito de la vista "en bruto" de Github).Realmente debería descargar una copia del archivo localmente en su sitio e incluirlo desde allí. Incluso si funcionó desde Github, ya que no está cargando el archivo JS de forma asincrónica, poner esa
<script>
etiqueta en el encabezado de su página hace que su sitio dependa de la disponibilidad de Github.fuente
Esta es una característica intencional diseñada para prevenir ciertos ataques XSS .
Como explica Mike West , no lo use
raw.github.com
como CDN; use páginas de GitHub en su lugar.Además, la codificación explícita de caracteres no reservados no cambiará la forma en que se trata la URL.
fuente
Como señala Bybe, el problema es que casi todo el contenido servido por raw.github.com se envía como un archivo de texto, de esa manera el contenido se representa en texto sin formato en su navegador sin que se interpongan otras aplicaciones o problemas. De lo contrario, entraría en la situación en la que intentar ver un archivo .js podría hacer que el navegador intente ejecutarlo en lugar de mostrárselo.
Además de eso, ni github ni pages.github están tratando de ser un CDN. Realmente deberías:
fuente