En tête de ma page HTML, j'ai:
<script src="https://raw.github.com/cloudhead/less.js/master/dist/less-1.3.3.js"></script>
Lorsque je charge la page dans mon navigateur (Google Chrome v 27.0.1453.116) et que j'active les outils de développement, cela dit:
Refusé d'exécuter le script à partir de ' https://raw.github.com/cloudhead/less.js/master/dist/less-1.3.3.js ' car son type MIME ('text / plain') n'est pas exécutable, et la vérification stricte du type MIME est activée.
En effet, le script ne s'exécutera pas. Pourquoi Chrome pense-t-il qu'il s'agit d'un fichier texte brut? Il a clairement une .js
extension de fichier.
Étant donné que j'utilise HTML5, j'ai omis l' type
attribut, j'ai donc pensé que cela pouvait causer le problème. J'ai donc ajouté type="text/javascript"
à la <script>
balise et obtenu le même résultat. J'ai même essayé type="application/javascript"
et j'ai toujours la même erreur.
Ensuite, j'ai essayé de le changer type="text/plain"
simplement par curiosité. Le navigateur n'a pas renvoyé d'erreur, mais bien sûr, le JavaScript ne s'est pas exécuté non plus.
Enfin, je pensais que les périodes dans le nom de fichier pouvaient mettre le navigateur hors tension. Donc, dans mon code HTML, j'ai changé toutes les périodes en caractère d'échappement URL %2E
:
<script src="https://raw.github.com/cloudhead/less%2Ejs/master/dist/less-1%2E3%2E3.js"></script>
Cela n'a toujours pas fonctionné. La seule chose qui fonctionne vraiment (c'est-à-dire que le navigateur ne donne pas d'erreur et que JS s'exécute avec succès) est si je télécharge le fichier, le télécharge dans un répertoire local, puis modifie la src
valeur dans le fichier local. Je préfère ne pas le faire car j'essaie d'économiser de l'espace sur mon propre site Web.
Comment puis-je faire en sorte que Chrome reconnaisse que le fichier lié est en fait un type JavaScript?
la source
Décembre 2018 modifier
RawGit est désormais en train de disparaître en raison d'une utilisation malveillante, ils recommandent donc d'utiliser l'un des services suivants à la place:
Message d'origine
Rawgithub.com permet aux utilisateurs de prendre les versions "Raw" d'un Git et de le transformer en une URL utilisable dans les
<script>
balises. Il est assez facile à utiliser, il suffit de supprimer le premier.
de l'URL brute. Par exemple, ceci:se transformerait en ce
puis vous le mettez dans une
<script>
balise avec le type approprié. C'est simple!Ils limitent le nombre de demandes car il est destiné à des fins de développement uniquement, pas de production.
2014 modifier
Comme Reinderien l'a mentionné, rawgithub est maintenant juste rawgit, donc le nouveau lien de script serait
la source
L'extension de fichier n'est pas pertinente, c'est l'en-tête Content-Type qui compte, et ce fichier est servi avec un
text/plain
type de contenu (ce qui est le but de la vue "brute" de Github).Vous devez vraiment télécharger une copie du fichier localement sur votre site et l'inclure à partir de là. Même si cela fonctionnait depuis Github, puisque vous ne chargez pas le fichier JS de manière asynchrone, le fait de placer cette
<script>
balise dans l'en-tête de votre page dépend de la disponibilité de Github.la source
Il s'agit d'une fonctionnalité intentionnelle conçue pour empêcher certaines attaques XSS .
Comme l'explique Mike West , ne l'utilisez pas
raw.github.com
comme CDN; utilisez plutôt les pages GitHub .De plus, l'encodage explicite des caractères non réservés ne changera pas la façon dont l'URL est traitée.
la source
Comme le souligne bybe, le problème est que presque tout le contenu servi par raw.github.com est envoyé sous forme de fichier texte - de cette façon, le contenu est rendu en texte brut dans votre navigateur sans qu'aucune autre application ou problème ne gêne. Sinon, vous pourriez vous retrouver dans une situation où tenter d'afficher un fichier .js pourrait amener le navigateur à tenter de l'exécuter plutôt que de vous le montrer.
De plus, ni github ni pages.github n'essaient d'être un CDN. Vous devriez vraiment soit:
la source