Question Lier et exécuter un fichier JavaScript externe hébergé sur GitHub


Lorsque j'essaie de modifier la référence liée d'un fichier JavaScript local à une version brute de GitHub, mon fichier de test ne fonctionne plus. L'erreur est:

Refusé d'exécuter le script de ... parce que son type MIME (text/plain) n'est pas exécutable et la vérification stricte du type MIME est activée.

Existe-t-il un moyen de désactiver ce comportement ou existe-t-il un service permettant de lier des fichiers bruts GitHub?

Code de travail:

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

Code non fonctionnel:

<script src="https://raw.github.com/mindmup/bootstrap-wysiwyg/master/bootstrap-wysiwyg.js"></script>

468
2018-06-27 10:49


origine


Réponses:


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

Pas:

  1. Trouvez votre lien sur GitHub et cliquez sur la version "Raw" du fichier.
  2. Copiez l'URL et liez-la.
  3. Changement raw.githubusercontent.com à rawgit.com (non-production) ou cdn.rawgit.com (production)

Exemple:

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

Utilisez 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 un tag spécifique ou un commit-hash plutôt que la branche. RawGit jamais met à jour le fichier stocké sur un chemin donné une fois qu'il est mis en cache. Par conséquent, si vous liez un fichier par son nom, votre lien ne sera jamais mis à jour, même si vous effectuez des validations supplémentaires. La liaison à un fichier par commit-hash ou par tag rend le lien unique à la version.


Pourquoi est-ce nécessaire?

GitHub a commencé à utiliser X-Content-Type-Options: nosniff, qui ordonne plus les navigateurs modernes pour appliquer une vérification stricte des types MIME. Il retourne ensuite le brut fichiers dans un type MIME renvoyé par le serveur, empêchant le navigateur d'utiliser le fichier tel que prévu (si le navigateur respecte les paramètres).

Pour en savoir plus sur ce sujet, veuillez vous reporter à ce fil de discussion.


911
2017-08-05 02:34



Ce n'est plus possible. GitHub a explicitement désactivé JavaScript le hotlink et les versions plus récentes des navigateurs respectent ce paramètre.

Attention: le support de l'en-tête nosniff arrive sur Chrome et Firefox


50
2018-06-28 20:47



rawgithub.com redirige vers rawgit.com Donc, l'exemple ci-dessus serait maintenant

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


20
2018-05-21 14:18



Pour rendre les choses claires et courtes

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

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


5
2017-10-04 17:53



Les réponses ci-dessus répondent clairement à la question mais je veux fournir une autre alternative - une vision / 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 des dossiers. Il existe deux extensions de navigateur pour modifier les en-têtes de réponse.

  1. Requis: Chrome + Firefox 
  2. Modifier les en-têtes: Firefox

Si vous utilisez de manière appropriée, 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

Pas

  1. Installez Requestly à partir de http://www.requestly.in
  2. Aller à Page des règles
  3. Cliquez sur Ajouter une icône pour créer une règle
  4. Sélectionnez Modifier les en-têtes
  5. Donnez un nom et un descripteur
  6. Sélectionner Remove -> Response -> X-Content-Type-Options
  7. Dans le champ Source, entrez Url -> Contains -> raw.githubusercontent.com

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

  1. Installez Requestly à partir de http://www.requestly.in
  2. Aller à Page des règles
  3. Cliquez sur Ajouter une icône pour créer une règle
  4. Remplacer raw.githubusercontent.comavec rawgit.com

Consultez cette capture d'écran pour plus de détailsenter image description here

Comment tester

Nous avons créé un simple JS Fiddle pour tester si nous pouvons utiliser des fichiers github bruts comme des scripts dans notre code. Voici la 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 tu vois Script evaluated successfully!, Cela signifie que vous pouvez utiliser le fichier github brut dans votre code Autrement Problem evaluating script indique qu'il y a un problème lors de l'exécution du script à partir d'une source github brute.

J'ai aussi écrit un article sur Blog demandé à propos de ça. S'il vous plaît le référer pour plus de détails.

J'espère que cela aide!!

Disclaimer: Je suis auteur de À la demande Donc, vous pouvez blâmer pour tout ce que vous n'aimez pas.


5
2018-04-06 16:22



Mon cas d'utilisation était de charger 'bookmarklets'direclty de mon compte Bitbucket qui a les mêmes restrictions que Github. Le travail autour de moi est venu à AJAX pour le script et exécuter eval sur la chaîne de réponse, l'extrait ci-dessous 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 de sourceURL Le commentaire a pour but de permettre le débogage du script dans les outils de développement du navigateur.


3
2018-05-07 02:10



https://raw.githack.com/

trouvé ce site fournir un CDN pour

  • retirer nosniff en-tête http
  • réparer mime type par nom d'extension

et ce site:

https://rawgit.com/


2
2018-03-06 10:35



Moyen le 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 pour autant text/plain
enter image description here


1
2018-05-31 02:12



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 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
2018-01-29 06:49



Lorsqu'un fichier est téléchargé sur github, vous pouvez l'utiliser comme source externe ou hébergement gratuit. Troy Alford l'a bien expliqué plus haut. Mais pour le rendre plus facile laissez-moi vous dire quelques étapes faciles alors vous pouvez utiliser un fichier brut github dans 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 brut et githubusercontent

Comme ça:

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

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

Voici le dernier lien:

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 mentionné ci-dessus. C'est le moyen le plus simple d'obtenir un lien simple pour appeler votre fichier css ou javascript externe hébergé sur github.

J'espère que ceci est utile.

URL de référence: http://101helper.blogspot.com/2015/11/store-blogger-codes-on-github-boost-blogger-speed.html


0
2018-01-04 08:57



raw.github.com n'est pas vraiment un accès brut à l'actif de fichier, mais une vue rendue par Rails. Donc accéder raw.github.comest beaucoup plus lourd que nécessaire. Je ne sais pas pourquoi raw.github.com est implémenté en tant que vue Rails. Au lieu de résoudre ce problème de routage, GitHub a ajouté un X-Content-Type-Options: nosniff entête.

Solution de contournement:

  • Mettez le script à user.github.io/repo
  • Utilisez un CDN tiers comme rawgit.com.

0
2017-08-27 13:34