jQuery's jquery-1.10.2.min.map está activando un 404 (no encontrado)

1061

Veo mensajes de error sobre un archivo min.map, que no se encuentra:

OBTENER jQuery's jquery-1.10.2.min.map está activando un 404 (no encontrado)


Captura de pantalla

ingrese la descripción de la imagen aquí

¿De dónde viene esto?

Paul Irish
fuente
1
Para solucionar mi problema, no seguí los detalles de esta respuesta. Mi sitio solo usa el archivo js, ​​no el mapa. Simplemente borré el caché de mi navegador para resolver esto, y reinicié el navegador. Comenzó a ocurrir cuando comencé a recibir un error del servidor interno 500 en un controlador genérico ASP.NET (ExtDirectProxy.ashx) construido y pasó datos a jquery para cargar la página. stackoverflow.com/questions/26135251/…
MacGyver
1
cambie la versión que necesita y descárguela de la siguiente URL y cámbiele el
Iman
1
Esto ralentiza las descargas, ya que los navegadores descargan esto incluso si no es necesario.
Quentin 2
1
@ Quentin2 según html5rocks.com/en/tutorials/developertools/sourcemaps El archivo de mapa de origen solo se descargará si tiene habilitados los mapas de origen y sus herramientas de desarrollo están abiertas.
Mathemats

Respuestas:

1271

Si Chrome DevTools informa un 404 para un archivo .map (tal vez jquery-1.10.2.min.map, jquery.min.mapo jquery-2.0.3.min.mappuede ocurrir con cualquier cosa), lo primero que debe saber es que esto solo se solicita al usar DevTools. Sus usuarios no alcanzarán este 404.

Ahora puede arreglar esto o deshabilitar la funcionalidad del mapa fuente.

Solución: obtenga los archivos

A continuación, es una solución fácil. Dirígete a http://jquery.com/download/ y haz clic en el enlace Descargar el archivo de mapa para tu versión, y también querrás descargar el archivo sin comprimir.

ingrese la descripción de la imagen aquí

Tener el archivo de mapa en su lugar le permite depurar su jQuery minimizado a través de las fuentes originales, lo que le ahorrará mucho tiempo y frustración si no le gusta tratar con nombres de variables como ay c.

Más información sobre los mapas de origen aquí: Introducción a los mapas de origen de JavaScript

Esquivar: deshabilitar mapas fuente

En lugar de obtener los archivos, también puede deshabilitar completamente los mapas fuente de JavaScript por ahora, en su configuración. Esta es una buena opción si nunca planea depurar JavaScript en esta página. Use el icono de engranaje en la parte inferior derecha de DevTools para abrir la configuración y luego: ingrese la descripción de la imagen aquí

Paul Irish
fuente
99
Voy a votar por esto (aunque haya respondido su propia pregunta) porque por primera vez lo noté hoy. Me estaba volviendo un poco loco tratar de resolverlo, luego noté el mismo error 404 en 2 sitios en los que estaba trabajando y me vino a la mente la opción 'habilitar mapas fuente' ... eso es lo que obtengo por ver sus herramientas de desarrollo habla y enciende todo a la vez. Revisaré los documentos que proporcionaste.
adam-asdf
47
Tengo dos cosas para agregar. 1) Descargar un archivo de mapa jQuery no es suficiente, también necesitará un código fuente sin comprimir (de lo contrario, verá un archivo jquery - *. Js vacío durante la depuración). 2) Si está cargando jQuery desde una de las CDN, los tres archivos (mapa, código fuente comprimido y sin comprimir) están en la misma ubicación y puede comenzar a depurar de inmediato.
Konrad Dzwinel
42
No estoy seguro de que se deba levantar un 404 para DevTools para esto, parece confundir a la gente. Sin embargo, al menos ahora sé cómo lidiar con eso. También @ adam-asdf para que sepa que se le anima activamente a responder su propia pregunta sobre SO ... meta.stackexchange.com/questions/17845/…
Greg
12
Estoy de acuerdo con @Greg. Tener un error 404 en la consola para un mapa fuente (que se solicitó en nombre de Chrome / DevTools) no parece muy útil. Especialmente porque muchas personas ni siquiera entienden por qué (o de dónde) se solicita ese recurso.
idbehold
99
@ SpYk3HH Está totalmente bien aceptar su propia respuesta y editar bibliotecas de terceros no es realmente recomendable ... porque si desea actualizar cosas olvidará lo que cambió.
Lipis
276

Puede eliminar el 404 eliminando la línea

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

desde la parte superior de su archivo jQuery.

La parte superior del archivo jQuery se verá así.

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

Solo cambia eso a

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

Propósito de un mapa fuente

Básicamente es una forma de asignar un archivo combinado / minificado a un estado sin construir. Cuando construye para la producción, junto con la minificación y combinación de sus archivos JavaScript, genera un mapa fuente que contiene información sobre sus archivos originales. Cuando consulta un cierto número de línea y columna en su JavaScript generado, puede hacer una búsqueda en el mapa fuente que devuelve la ubicación original. Las herramientas de desarrollo (actualmente compilaciones nocturnas de WebKit, Google Chrome o Firefox 23+) pueden analizar el mapa fuente automáticamente y hacer que parezca que estás ejecutando archivos no minificados y no combinados. (Lea más sobre esto aquí )

kiranvj
fuente
Lo siento, quise decir: ¿hay alguna ocasión en la que hubiera necesitado esta línea?
Flion
66
Solo se requiere cuando necesita depurar su código fuente JS minimizado. Consulte el segundo párrafo aquí para obtener más detalles html5rocks.com/en/tutorials/developertools/sourcemaps
kiranvj
55
Ojalá hubiera visto esto antes de hacer la respuesta seleccionada. Esto es mucho más fácil y DEBE ser la respuesta principal. La auto respuesta del operador es buena para la información, pero definitivamente es secundaria ya que esta es la primera pregunta que surge cuando buscas en Google cómo deshacerte de esta molestia.
SpYk3HH
13
Editar bibliotecas para deshacerse de esas cosas no es una buena opción. Cada vez que actualice jquery, esta línea estará allí nuevamente.
Arman P.
66
A partir de enero de 2014, las referencias del mapa fuente no están incluidas en la distribución jQuery.
Dan Esparza
44

Como se anuncia en jQuery 1.11.0/2.1.0 Beta 2 Releasedel mapa fuente, el comentario se eliminará, por lo que el problema no aparecerá en las versiones más recientes de jQuery.

Aquí está el anuncio oficial:

Uno de los cambios que hemos realizado en esta versión beta es eliminar el comentario del mapa fuente. Los mapas fuente han demostrado ser muy problemáticos y desconcertantes para los desarrolladores, generando decenas de preguntas confusas en foros como StackOverflow y haciendo que los usuarios piensen que jQuery está roto.

De todos modos, si necesita usar un mapa fuente, todavía estará disponible:

Seguiremos generando y distribuyendo mapas de origen, pero deberá agregar el comentario de mapa de origen apropiado al final del archivo minimizado si el navegador no admite la asociación manual de archivos de mapa (actualmente, ninguno lo hace). Si genera su propio archivo jQuery utilizando el proceso de compilación personalizado, el comentario del mapa fuente estará presente en el archivo minificado y se generará el mapa; puede dejarlo y usar mapas de origen o editarlo e ignorar el archivo de mapa por completo.

Aquí puede encontrar más detalles sobre los cambios.


Aquí puede encontrar la confirmación de que con el jQuery 1.11.0/2.1.0 Releasedcomentario del mapa fuente en el archivo minimizado se elimina.

gotqn
fuente
1
Pero si no hubiera sido por esta confusión, nunca lo habría buscado aquí y habría sabido que existen mapas. Había estado agregando manualmente espacios a archivos minificados en los que quería echar un vistazo.
agua helada
1
El navegador Chrome tiene un botón que formateará bastante un archivo minificado. Prettifiers en línea también están disponibles.
Quentin 2
16

Las nuevas versiones de jQuery requieren este archivo http://code.jquery.com/jquery-1.10.2.min.map

La usabilidad de este archivo se describe aquí http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/

Actualizar:

jQuery 1.11.0 / 2.1.0

// el comentario de sourceMappingURL no está incluido en el archivo comprimido .

Andres Separ
fuente
3
No, no creo que jQuery "requiera" ese archivo. Solo es necesario si desea utilizar el mapa fuente durante la depuración, en cuyo caso se necesitan tanto el archivo src como el archivo de mapa.
styfle
1
Hola @styfle, el mapa fuente se requería en la versión 1.10.2, pero desde la versión 1.11.0 / 2.1.0 debe agregarlo manualmente, esto se debe a que muchos usuarios se vieron afectados por el error que se produjo en la consola del navegador
Andres Separ
9

Según entiendo el navegador, Chrome al menos, no deshabilita la asignación de origen de forma predeterminada. Eso significa que los usuarios de su aplicación activarán esta solicitud de asignación de origen de forma predeterminada.

Puede eliminar la asignación de origen eliminando la //@ sourceMappingURL=jquery.min.mapde su archivo JavaScript.

James J. Ye
fuente
9

Si desea obtener una versión diferente del archivo de mapa fuente, puede usar este enlace http://code.jquery.com/jquery-x.xx.x.min.map

En su lugar, x.xx.x ponga su número de versión.

Nota: Algunos enlaces, que obtienes en este método, pueden estar rotos :)

Andriyun
fuente
8

Después de seguir las instrucciones en las otras respuestas, necesitaba quitar la versión del archivo de mapa para que esto funcione para mí.

Ejemplo: Cambiar nombre

jquery-1.9.1.min.map

a

jquery.min.map

drobison
fuente
6

Me presentaron el mismo problema. La causa para mí fue Grunt concatenando mi archivo JavaScript.

Estaba usando un ;\ncomo separador que causó la ruta al mapa de origen a 404.

Así que las herramientas de desarrollo estaban buscando en jquery.min.map;lugar de jquery.min.map.

Sé que esa no es la respuesta a la pregunta original, pero estoy seguro de que hay otros con una configuración de Grunt similar.

nickspiel
fuente
5

jQuery 1.11.0 / 2.1.0 el comentario // sourceMappingURL no está incluido en el archivo comprimido.

usuario3235672
fuente
1

Suponiendo que haya verificado que el archivo está realmente presente en el servidor, esto también podría deberse a que su servidor web restringe qué tipos de archivos se sirven:

Molomby
fuente