Relier et exécuter le fichier JavaScript externe hébergé sur GitHub

lorsque j'essaie de changer la référence liée d'un fichier JavaScript local vers une version brute GitHub, mon fichier test cesse de fonctionner. L'erreur est:

a refusé d'Exécuter script à partir de ... parce que son type MIME ( text/plain ) n'est pas exécutable, et la vérification de type MIME stricte est activée.

Est-il un moyen de désactiver ce comportement, ou est-il un service qui permet de relier à GitHub fichiers raw?

code de travail:

<script src="bootstrap-wysiwyg.js"></script>

code inactif:

<script src="https://raw.github.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js"></script>
483
demandé sur AuthorProxy 2013-06-27 14:49:20

13 réponses

il est une bonne solution pour cela, maintenant, en utilisant rawgit.com .

Étapes :

  1. Trouvez votre lien sur GitHub, et cliquez sur la version" Raw " du fichier.
  2. copier l'URL, et le lien vers elle.
  3. changer raw.githubusercontent.com en rawgit.com (non-production) ou cdn.rawgit.com (production)

exemple :

http://raw.githubusercontent.com/user/repo/branch/file.js

utiliser cette URL pour le développement:

http://rawgit.com/user/repo/branch/file.js

utilisez cette URL en production:

http://cdn.rawgit.com/user/repo/tag/file.js

pour les environnements de production , envisagez de cibler une étiquette spécifique ou de commettre-hachage plutôt que la branche. RawGit never met à jour le fichier stocké à un chemin donné une fois qu'il est mis en cache - ainsi le fait de créer un lien vers un fichier par le nom de la branche fera que votre lien ne sera jamais mis à jour - même si vous faites des propagations supplémentaires. Le lien vers un fichier par commit-hash ou tag rend le lien unique à la version.


Pourquoi est-ce nécessaire?

GitHub a commencé à utiliser X-Content-Type-Options: nosniff , qui en dit plus navigateurs modernes pour appliquer la vérification de type MIME stricte. Il renvoie ensuite le brut les fichiers dans un type MIME retournés par le serveur, empêchant le navigateur de l'aide le fichier comme prévu (si le navigateur honore le paramètre).

pour plus d'information sur ce sujet, veuillez vous référer à ce sujet de discussion .

933
répondu Troy Alford 2018-07-05 16:52:08

Ce n'est plus possible. GitHub a explicitement désactivé JavaScript la connexion à chaud et les versions plus récentes des navigateurs respectent ce réglage.

Heads up: nosniff appui-tête à venir pour Chrome et Firefox

52
répondu Peeja 2016-12-24 00:25:02

rawgithub.com redirige vers rawgit.com de sorte que l'exemple ci-dessus serait maintenant

http://rawgit.com/user/package/master/link.min.js

20
répondu Paul Browne 2014-05-21 14:18:08

pour rendre les choses claires et courtes

//raw.githubusercontent.com --> //rawgit.com

notez que ceci est géré par l'hébergement de développement de rawgit et non par leur cdn pour l'hébergement de production

5
répondu Tomer Ben David 2016-01-20 18:19:57

les réponses ci - dessus répondent clairement à la question, mais je veux proposer une autre solution-une approche différente pour résoudre le problème similaire.

vous pouvez également utiliser l'extension du navigateur pour supprimer X-Content-Type-Options en-tête de réponse pour raw.githubusercontent.com fichiers. Il y a quelques extensions de navigateur pour modifier les en-têtes de réponse.

  1. Requestly: Chrome + Firefox
  2. Modifier Les En-Têtes: Firefox

si vous utilisez Requestly, je peux suggérer deux solutions

Solution 1: utiliser la règle Modifier les en-têtes et supprimer l'en-tête de réponse

Étapes

  1. installer Requestly from http://www.requestly.in
  2. Aller à les Règles de la Page
  3. cliquez sur L'icône Ajouter pour créer une règle
  4. Sélectionner Modifier En-Têtes
  5. Donner un Nom et une Description
  6. sélectionner Remove -> Response -> X-Content-Type-Options
  7. dans le champ Source, entrez Url -> Contains -> raw.githubusercontent.com

Solution 2: Remplacer la règle de l'hôte

  1. Installer Requestly de http://www.requestly.in
  2. Aller à les Règles de la Page
  3. cliquez sur L'icône Ajouter pour créer une règle
  4. remplacer raw.githubusercontent.com par rawgit.com

Vérifiez cette capture d'écran pour plus de détails enter image description here

Comment faire l'essai

nous avons créé un violon js simple pour tester si nous peut utiliser des fichiers GitHub bruts comme scripts dans notre code. Voici le violon avec le code suivant

<center id="msg"></center>

<script src="https://raw.githubusercontent.com/sachinjain024/practicebook/master/web-extensions-master/storage/background.js"></script>
<script>
try {
  if (typeof BG.Methods !== 'undefoned') {
    document.getElementById('msg').innerHTML = 'Script evaluated successfully!';
  }
} catch (e) {
  document.getElementById('msg').innerHTML = 'Problem evaluating script';
}
</script>

si vous voyez Script evaluated successfully! , cela signifie que vous pouvez utiliser le fichier brut github dans votre code Sinon Problem evaluating script indique qu'il y a un problème lors de l'exécution de script à partir de la source brute de github.

j'ai également écrit un article sur blog Requestly à ce sujet. Veuillez vous y référer pour plus de détails.

Espère que cela aide!!

Avertissement: je suis l'auteur de Requestly de Sorte que vous pouvez blâmer pour tout ce que vous n'aimez pas.

5
répondu sachinjain024 2018-07-28 05:22:33

mon cas d'utilisation était de charger" bookmarklets " directement à partir de mon compte Bitbucket qui a les mêmes restrictions que Github. Le travail que j'ai fait était D'AJAX pour le script et d'exécuter eval sur la chaîne de réponse, ci-dessous snippet est basé sur cette approche.

<script>
    var sScriptURL ='<script-URL-here>'; 
    var oReq = new XMLHttpRequest(); 
    oReq.addEventListener("load", 
       function fLoad() {eval(this.responseText + '\r\n//# sourceURL=' + sScriptURL)}); 
    oReq.open("GET", sScriptURL); oReq.send(); false;
</script>

notez que l'ajout du commentaire sourceURL permet de déboguer le script dans les outils de développement du navigateur.

3
répondu Daniel Sokolowski 2016-05-13 16:37:44

https://raw.githack.com /

trouvé ce site fournir un CDN pour

  • supprimer nosniff en-tête http
  • fix mime type par ext nom

et ce site:

https://rawgit.com /

2
répondu yurenchen 2017-03-22 03:44:09

Lorsqu'un fichier est téléchargé sur github, vous pouvez l'utiliser comme source externe ou d'hébergement gratuit. Troy Alford l'a bien expliqué plus haut. Mais pour le rendre plus facile laissez-moi vous dire quelques étapes faciles puis vous pouvez utiliser un fichier GitHub raw sur votre site:

voici le lien de votre fichier:

https://raw.githubusercontent.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js

Maintenant, pour l'exécuter, vous devez supprimer https:// et le point( . ) entre raw et githubusercontent

comme ceci:

rawgithubusercontent.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js

Maintenant, quand vous allez visiter ce lien, vous obtiendrez un lien qui peut être utilisé pour appeler votre javascript:

voici le lien final:

https://rawgit.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js

de même, si vous hébergez un fichier css, vous devez le faire comme indiqué ci-dessus. C'est la façon la plus facile d'obtenir un lien simple pour appeler votre fichier CSS externe ou javascript hébergé sur github.

j'espère que c'est utile.

Referance URL: http://101helper.blogspot.com/2015/11/store-blogger-codes-on-github-boost-blogger-speed.html

1
répondu Fahim Raza 2016-01-04 08:57:12

la manière la plus simple:

<script type="text/plain" src="http://raw.githubusercontent.com/user/repo/branch/file.js"></script>

Servi par GitHub,

et

très

fiable.

Avec text/plain

enter image description here Sans text/plain

enter image description here
1
répondu 2016-05-31 02:12:43

j'ai trouvé l'erreur a été montré en raison des commentaires au début du fichier , vous pouvez résoudre ce problème , en créant simplement votre propre fichier sans commentaire et de pousser à git, il ne montre aucune erreur ""

pour preuve, vous pouvez essayer ces deux fichiers avec le même code de pagination facile:

sans commentaire

avec commentaire

1
répondu santosh 2017-01-29 06:49:22

raw.github.com n'est pas vraiment cru accès au fichier actif, mais une vue rendue par des Rails. L'accès à raw.github.com est donc beaucoup plus lourd que nécessaire. Je ne sais pas pourquoi raw.github.com est implémenté comme une vue de Rails. Au lieu de corriger ce problème de route, GitHub a ajouté un en-tête X-Content-Type-Options: nosniff .

solution de contournement:

  • Mettre le script de user.github.io/repo
  • utiliser un tiers CDN comme rawgit.com.
0
répondu weakish 2016-08-27 13:34:54

alternativement, si vous générez votre markup côté serveur, vous pouvez simplement aller chercher et injecter. Par exemple, dans JSTL vous pouvez faire ceci:

<script type="text/javascript">
    <c:import url="https://raw.github.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js" />
</script>

ils ne permettent pas de faire de la literie chaude pour une raison, donc probablement mauvaise forme si vous voulez être un bon citoyen. Je vous suggère de mettre en cache ce javascript et de ne le récupérer que périodiquement comme bon vous semble.

0
répondu matt burns 2017-05-16 13:58:26

j'ai eu le même problème que vous, ce que j'ai fait est de changer en

<script type="application/javascript" src="bootstrap-wysiwyg.js"></script>

ça me va.

0
répondu Yiting Gu 2018-06-10 02:23:58