jquery-1.10.2.min.map de jQuery déclenche un 404 (introuvable)

1061

Je vois des messages d'erreur sur un fichier, min.mapintrouvable:

GET jQuery's jquery-1.10.2.min.map déclenche un 404 (introuvable)


Capture d'écran

entrez la description de l'image ici

D'où cela vient-il?

Paul Irish
la source
1
Pour résoudre mon problème, je n'ai pas suivi les détails de cette réponse. Mon site utilise uniquement le fichier js, pas la carte. J'ai simplement effacé le cache de mon navigateur pour résoudre ce problème et redémarré le navigateur. Cela a commencé à se produire lorsque j'ai commencé à recevoir une erreur de 500 serveurs internes sur un gestionnaire générique ASP.NET (ExtDirectProxy.ashx) créé et transmis des données à jquery pour charger la page. stackoverflow.com/questions/26135251/…
MacGyver
1
changez la version dont vous avez besoin et téléchargez-la à partir de l'URL ci-dessous et renommez-la code.jquery.com/jquery-1.11.1.min.map
Iman
1
Cela ralentit les téléchargements, car les navigateurs les téléchargent même s'ils ne sont pas nécessaires.
Quentin 2
1
@ Quentin2 selon html5rocks.com/en/tutorials/developertools/sourcemaps Le fichier de carte source ne sera téléchargé que si les cartes source sont activées et vos outils de développement ouverts.
Mathemats

Réponses:

1271

Si Chrome DevTools signale un 404 pour un fichier .map (peut jquery-1.10.2.min.map- être jquery.min.mapou jquery-2.0.3.min.mappeut arriver avec n'importe quoi), la première chose à savoir est que cela n'est demandé que lors de l'utilisation des DevTools. Vos utilisateurs ne toucheront pas ce 404.

Vous pouvez maintenant résoudre ce problème ou désactiver la fonctionnalité de sourcemap.

Correction: récupérez les fichiers

Ensuite, c'est une solution facile. Rendez-vous sur http://jquery.com/download/ et cliquez sur le lien Télécharger le fichier de carte pour votre version, et vous souhaiterez également que le fichier non compressé soit téléchargé.

entrez la description de l'image ici

La mise en place du fichier de carte vous permet de déboguer votre jQuery minifié via les sources d'origine, ce qui vous fera gagner beaucoup de temps et de frustration si vous n'aimez pas traiter avec des noms de variables comme aet c.

Plus d'informations sur les sourcemaps ici: Une introduction aux cartes source JavaScript

Dodge: désactiver les sourcemaps

Au lieu d'obtenir les fichiers, vous pouvez également désactiver complètement les cartes source JavaScript pour l'instant, dans vos paramètres. C'est un bon choix si vous ne prévoyez jamais de déboguer JavaScript sur cette page. Utilisez l'icône de rouage en bas à droite des DevTools, pour ouvrir les paramètres, puis: entrez la description de l'image ici

Paul Irish
la source
9
Je vote pour cela (même si vous avez répondu à votre propre question) car pour la première fois je l'ai remarqué aujourd'hui. Cela me rendait un peu fou en essayant de le comprendre, puis j'ai remarqué la même erreur 404 sur 2 sites sur lesquels je travaillais et l'option `` Activer les cartes sources '' m'est venue à l'esprit ... c'est ce que j'obtiens pour regarder vos outils de développement parle et allume tout à la fois. Je vais passer en revue les documents que vous avez fournis.
adam-asdf
47
J'ai deux choses à ajouter. 1) Le téléchargement d'un fichier de carte jQuery ne suffit pas, vous aurez également besoin d'un code source non compressé (sinon vous verrez un fichier jquery - *. Js vide pendant le débogage). 2) Si vous chargez jQuery à partir de l'un des CDN, les trois fichiers (carte, code source compressé et non compressé) sont au même emplacement et vous pouvez commencer le débogage immédiatement.
Konrad Dzwinel
42
Je ne suis pas sûr qu'un 404 devrait être levé pour cela à partir de DevTools, confond les gens, semble-t-il. Néanmoins, au moins, je sais maintenant comment y faire face. Aussi @ adam-asdf juste pour que vous sachiez que vous êtes activement encouragé à répondre à votre propre question sur SO ... meta.stackexchange.com/questions/17845/…
Greg
12
Je suis d'accord avec @Greg. Avoir une erreur 404 déclenchée dans la console pour une carte source (qui a été demandée au nom de Chrome / DevTools) ne semble pas très utile. Surtout parce que beaucoup de gens ne comprennent même pas pourquoi (ou d'où) cette ressource est demandée.
idbehold
9
@ SpYk3HH Est tout à fait correct d'accepter votre propre réponse et l'édition de bibliothèques tierces n'est pas vraiment conseillée .. car si vous voulez mettre à jour des trucs, vous oublierez ce qui a été changé.
Lipis
276

Vous pouvez supprimer le 404 en supprimant la ligne

//@ sourceMappingURL=jquery-1.10.2.min.map

à partir de la partie supérieure de votre fichier jQuery.

La partie supérieure du fichier jQuery ressemblera à ceci.

/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
//@ sourceMappingURL=jquery-1.10.2.min.map
*/

Il suffit de changer cela en

/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license */

Objectif d'une carte source

Fondamentalement, c'est un moyen de mapper un fichier combiné / minifié à un état non construit. Lorsque vous générez pour la production, en plus de réduire et de combiner vos fichiers JavaScript, vous générez une carte source qui contient des informations sur vos fichiers d'origine. Lorsque vous interrogez un certain numéro de ligne et de colonne dans votre code JavaScript généré, vous pouvez effectuer une recherche dans la carte source qui renvoie l'emplacement d'origine. Les outils de développement (actuellement les versions WebKit nocturnes, Google Chrome ou Firefox 23+) peuvent analyser automatiquement la carte source et la faire apparaître comme si vous exécutiez des fichiers non minifiés et non combinés. (En savoir plus ici )

kiranvj
la source
Désolé, je voulais dire: y a-t-il une occasion où j'aurais eu besoin de cette ligne?
Flion
6
Requis uniquement lorsque vous devez déboguer votre code source JS minifié. Consultez le 2ème paragraphe ici pour plus de détails html5rocks.com/en/tutorials/developertools/sourcemaps
kiranvj
5
J'aimerais avoir vu cela avant de faire la réponse sélectionnée. C'est beaucoup plus facile et DEVRAIT être la réponse principale. L'auto-réponse de l'op est bonne pour les informations, mais elle est certainement secondaire car c'est la première question qui apparaît lors de la recherche sur Google de la manière de se débarrasser de cette gêne.
SpYk3HH du
13
Modifier des bibliothèques pour se débarrasser de ces choses n'est pas un bon choix. Chaque fois que vous mettez à jour jquery, cette ligne sera de nouveau présente.
Arman P.
6
Depuis janvier 2014, les références sourcemap ne sont pas incluses dans la distribution jQuery.
Dan Esparza
44

Comme il est annoncé dans jQuery 1.11.0/2.1.0 Beta 2 Releasedla carte source, le commentaire sera supprimé afin que le problème n'apparaisse pas dans les versions plus récentes de jQuery.

Voici l'annonce officielle:

L'une des modifications que nous avons apportées à cette version bêta consiste à supprimer le commentaire de la carte source. Les sourcemaps se sont révélés être une chose très problématique et déroutante pour les développeurs, générant des dizaines de questions confuses sur des forums comme StackOverflow et amenant les utilisateurs à penser que jQuery lui-même était cassé.

Quoi qu'il en soit, si vous devez utiliser une carte source, elle sera toujours disponible:

Nous continuerons à générer et à distribuer des cartes sources, mais vous devrez ajouter le commentaire de carte source approprié à la fin du fichier minifié si le navigateur ne prend pas en charge l'association manuelle des fichiers de carte (actuellement, aucun ne le fait). Si vous générez votre propre fichier jQuery à l'aide du processus de génération personnalisé, le commentaire sourcemap sera présent dans le fichier minifié et la carte est générée; vous pouvez le laisser dans et utiliser les cartes sources ou le modifier et ignorer complètement le fichier de carte.

Ici vous pouvez trouver plus de détails sur les changements.


Ici, vous pouvez trouver la confirmation que le jQuery 1.11.0/2.1.0 Releasedcommentaire de la carte source dans le fichier minifié est supprimé.

gotqn
la source
1
Mais s'il n'y avait pas eu cette confusion, je ne l'aurais jamais recherchée ici et je n'aurais jamais su que des cartes existent. J'avais ajouté manuellement des espaces aux fichiers minifiés dans lesquels je voulais jeter un œil.
icedwater
1
Le navigateur Chrome a un bouton qui formatera assez bien un fichier minifié. Des prettifiers en ligne sont également disponibles.
Quentin 2
16

Les nouvelles versions de jQuery nécessitent ce fichier http://code.jquery.com/jquery-1.10.2.min.map

La convivialité de ce fichier est décrite ici http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/

Mise à jour:

jQuery 1.11.0 / 2.1.0

// le commentaire sourceMappingURL n'est pas inclus dans le fichier compressé .

Andres Separ
la source
3
Non, je ne pense pas que jQuery "nécessite" ce fichier. Il n'est nécessaire que si vous souhaitez utiliser la carte source pendant le débogage, auquel cas le fichier src et le fichier de carte sont nécessaires.
styfle
1
Salut @styfle, la carte source était requise dans la version 1.10.2, mais à partir de la version 1.11.0 / 2.1.0 doit l'ajouter manuellement, c'est parce que de nombreux utilisateurs ont été affectés par l'erreur qui a été produite dans la console du navigateur
Andres Separ
9

Si je comprends bien le navigateur, Chrome au moins, il ne désactive pas le mappage source par défaut. Cela signifie que les utilisateurs de votre application déclencheront cette demande de mappage source par défaut.

Vous pouvez supprimer le mappage source en supprimant le //@ sourceMappingURL=jquery.min.mapde votre fichier JavaScript.

James J. Ye
la source
9

Si vous souhaitez obtenir une version différente du fichier de carte source, vous pouvez utiliser ce lien http://code.jquery.com/jquery-x.xx.x.min.map

Au lieu de cela, x.xx.x mettez votre numéro de version.

Remarque: certains liens que vous obtenez avec cette méthode peuvent être rompus :)

Andriyun
la source
8

Après avoir suivi les instructions des autres réponses, j'avais besoin de supprimer la version du fichier de carte pour que cela fonctionne pour moi.

Exemple: renommer

jquery-1.9.1.min.map

à

jquery.min.map

drobison
la source
6

On m'a présenté le même problème. La cause pour moi était Grunt concaténant mon fichier JavaScript.

J'utilisais un ;\ncomme séparateur qui a provoqué le chemin vers la carte source à 404.

Donc, les outils de développement recherchaient au jquery.min.map;lieu de jquery.min.map.

Je sais que ce n'est pas la réponse à la question d'origine, mais je suis sûr qu'il y en a d'autres avec une configuration Grunt similaire.

nickspiel
la source
5

jQuery 1.11.0 / 2.1.0 le commentaire // sourceMappingURL n'est pas inclus dans le fichier compressé.

user3235672
la source
1

En supposant que vous avez vérifié que le fichier est réellement présent sur le serveur, cela peut également être dû au fait que votre serveur Web restreint les types de fichiers servis:

Molomby
la source