JQuery-1.10.2.min.map jQuery вызывает 404 (не найден)


1061

Я вижу сообщения об ошибке файла min.map, будучи не найденным:

ПОЛУЧИТЬ jQuery jquery-1.10.2.min.map вызывает 404 (не найден)


Скриншот

введите описание изображения здесь

Откуда это?


1
Чтобы исправить мою проблему, я не следовал за деталями этого ответа. Мой сайт использует только файл js, а не карту. Я просто очистил кеш браузера, чтобы решить эту проблему, и перезапустил браузер. Это начало происходить, когда я начал получать ошибку 500 Internal Server на встроенном обработчике ASP.NET (ExtDirectProxy.ashx) и передал данные в jquery для загрузки страницы. stackoverflow.com/questions/26135251/…
— MacGyver

1
измените нужную
— Iman

1
Это замедляет загрузку, так как браузеры загружают ее, даже если она не нужна.
— Квентин 2

1
@ Quentin2 согласно html5rocks.com/en/tutorials/developertools/sourcemaps Файл исходной карты будет загружен, только если у вас включены исходные карты и открыты инструменты разработки.
— Математики

Ответы:


1271

Если Chrome DevTools сообщает 404 для файла .map (может быть jquery-1.10.2.min.map, jquery.min.mapили jquery-2.0.3.min.map, но может случиться с чем угодно), первое, что нужно знать, - это запрашивается только при использовании DevTools. Ваши пользователи не будут попадать в этот 404.

Теперь вы можете это исправить или отключить функцию карты исходного кода.

Исправлено: получить файлы

Далее это легко исправить. Перейдите на http://jquery.com/download/ и нажмите ссылку Загрузить файл карты для своей версии, и вы также захотите скачать несжатый файл.

введите описание изображения здесь

Наличие файла карты позволяет отлаживать минимизированный jQuery через исходные источники, что сэкономит много времени и усилий, если вам не нравится работать с именами переменных, такими как aи c.

Подробнее об исходных картах здесь: Введение в исходные карты JavaScript

Dodge: отключить исходные карты

Вместо того, чтобы получать файлы, вы можете пока полностью отключить исходные карты JavaScript в ваших настройках. Это хороший выбор, если вы никогда не планируете отлаживать JavaScript на этой странице. Используйте значок Cog в правом нижнем углу DevTools, чтобы открыть настройки, затем: введите описание изображения здесь


9
Я голосую за это (даже если вы ответили на свой вопрос), потому что впервые я заметил это сегодня. Это сводило меня с ума, пытаясь понять это, потом я заметил ту же ошибку 404 на 2 сайтах, над которыми я работал, и пришла в голову опция «включить исходные карты» ... вот что я получаю, наблюдая за вашими инструментами разработки разговаривает и включает все сразу. Я перейду к документам, которые вы предоставили.
— adam-asdf

47
У меня есть две вещи, чтобы добавить. 1) Загрузка файла карты jQuery не достаточно, вам также потребуется несжатый исходный код (в противном случае вы увидите пустой файл jquery - *. Js при отладке). 2) Если вы загружаете jQuery из одного из CDN, все три файла (исходный код, сжатый и несжатый) находятся в одном месте, и вы можете сразу же начать отладку.
— Конрад Дзвинел

42
Я не уверен, что 404 должен быть поднят для этого из DevTools, это сбивает с толку людей, кажется. Тем не менее, по крайней мере, теперь я знаю, как с этим бороться. Также @ adam-asdf только для того, чтобы вы знали, что вам активно предлагается ответить на свой собственный вопрос на SO ... meta.stackexchange.com/questions/17845/…
— Грег

12
Я согласен с @Greg. Появление ошибки 404 в консоли для исходной карты (которая была запрошена от имени Chrome / DevTools) не кажется очень полезной. Тем более, что многие люди даже не поймут, почему (или откуда) этот ресурс запрашивается.
— idbehold

9
@ SpYk3HH Совершенно нормально принять свой собственный ответ, и редактирование сторонних библиотек не очень рекомендуется .. потому что, если вы захотите обновить материал, вы забудете, что было изменено.
— Липис

276

Вы можете удалить 404, удалив линию

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

из верхней части вашего файла JQuery.

Верхняя часть файла jQuery будет выглядеть следующим образом.

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

Просто измените это на

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

Назначение исходной карты

По сути, это способ сопоставить объединенный / свернутый файл обратно с непостроенным состоянием. Когда вы создаете для производства, наряду с уменьшением и объединением ваших файлов JavaScript, вы генерируете исходную карту, которая содержит информацию о ваших исходных файлах. Когда вы запрашиваете определенную строку и номер столбца в сгенерированном JavaScript, вы можете выполнить поиск на исходной карте, которая возвращает исходное местоположение. Инструменты разработчика (в настоящее время ночные сборки WebKit, Google Chrome или Firefox 23+) могут автоматически анализировать исходную карту и отображать ее так, как будто вы используете незакрепленные и не объединенные файлы. (Подробнее об этом здесь )


Извините, я имел в виду: был ли случай, когда мне понадобилась бы эта линия?
— Флион

6
Требуется только тогда, когда вам нужно отладить минимизированный исходный код JS. Проверьте 2-й абзац здесь для более подробной информации html5rocks.com/en/tutorials/developertools/sourcemaps
— kiranvj

5
Жаль, что я видел это, прежде чем делать выбранный ответ. Это намного проще и ДОЛЖНО быть основным ответом. Самостоятельный ответ оператора хорош для информации, но, безусловно, второстепенен, так как это первый вопрос, который возникает, когда он ищет, как избавиться от этого раздражения.
— SpYk3HH

13
Редактирование библиотек, чтобы избавиться от таких вещей, не является хорошим выбором. Каждый раз, когда вы обновляете jquery, эта строка будет снова там.
— Арман П.

6
По состоянию на январь 2014 года ссылки на исходные карты не включены в дистрибутив jQuery.
— Дэн Эспарза

44

Как было объявлено в jQuery 1.11.0/2.1.0 Beta 2 Releasedисходной карте, комментарий будет удален, поэтому проблема не появится в более новых версиях jQuery.

Вот официальное объявление:

Одним из изменений, которые мы внесли в эту бета-версию, является удаление комментария к исходной карте. Sourcemaps оказались очень проблематичной и загадочной для разработчиков, генерируя множество запутанных вопросов на форумах, таких как StackOverflow, и заставляя пользователей думать, что сам jQuery был сломан.

В любом случае, если вам нужно использовать исходную карту, она все равно будет доступна:

Мы по-прежнему будем генерировать и распространять исходные карты, но вам нужно будет добавить соответствующий комментарий исходной карты в конце уменьшенного файла, если браузер не поддерживает ручное сопоставление файлов карт (в настоящее время никто этого не делает). Если вы сгенерируете свой собственный файл jQuery с использованием пользовательского процесса сборки, комментарий к исходной карте будет представлен в минимизированном файле, и карта будет сгенерирована; Вы можете оставить его и использовать исходные карты или отредактировать его и полностью игнорировать файл карты.

Здесь вы можете найти более подробную информацию об изменениях.


Здесь вы можете найти подтверждение, что с jQuery 1.11.0/2.1.0 Releasedкомментарием карты источника в минимизированном файле удаляется.


1
Но если бы не эта путаница, я бы никогда не посмотрел здесь и не знал, что карты существуют. Я вручную добавлял пробелы в минимизированные файлы, в которые хотел заглянуть.
— Ледяной воды

1
В браузере Chrome есть кнопка, которая довольно просто отформатирует минимизированный файл. Онлайн преттификаторы также доступны.
— Квентин 2


16

Новые версии jQuery требуют этот файл http://code.jquery.com/jquery-1.10.2.min.map

Удобство использования этого файла описано здесь http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/

Обновить:

JQuery 1.11.0 / 2.1.0

// комментарий sourceMappingURL не включен в сжатый файл .


3
Нет, я не верю, что jQuery "требует" этот файл. Это требуется только в том случае, если вы хотите использовать исходную карту при отладке, и в этом случае необходимы и файл src, и файл карты.
— Styfle

1
Привет @styfle, исходная карта была необходима в версии 1.10.2, но с версии 1.11.0 / 2.1.0 ее нужно добавить вручную, потому что на многих пользователей повлияла ошибка, возникшая в консоли браузера
— Andres Separ

9

Как я понимаю, браузер, по крайней мере, Chrome, по умолчанию не отключает отображение источника. Это означает, что пользователи вашего приложения по умолчанию будут запускать этот запрос сопоставления источника.

Вы можете удалить исходное сопоставление, удалив //@ sourceMappingURL=jquery.min.mapиз своего файла JavaScript.


9

Если вы хотите получить исходный файл карты другой версии, вы можете воспользоваться этой ссылкой http://code.jquery.com/jquery-x.xx.x.min.map

Вместо x.xx.x введите номер вашей версии.

Примечание: некоторые ссылки, которые вы получаете по этому методу, могут быть неработающими :)


8

После следования инструкциям в других ответах мне нужно было удалить версию из файла карты, чтобы это работало на меня.

Пример: переименовать

jquery-1.9.1.min.map

в

jquery.min.map


6

Мне представили ту же проблему. Причиной для меня было объединение моего файла JavaScript с помощью Grunt .

Я использовал ;\nв качестве разделителя, который привел путь к исходной карте до 404.

Так Dev инструменты искал jquery.min.map;вместо jquery.min.map.

Я знаю, что это не ответ на первоначальный вопрос, но я уверен, что есть другие с подобной конфигурацией Grunt.


5

jQuery 1.11.0 / 2.1.0 комментарий // sourceMappingURL не включен в сжатый файл.


1

Предполагая, что вы проверили, что файл действительно присутствует на сервере, это также может быть вызвано тем, что ваш веб-сервер ограничивает типы файлов, которые обслуживаются:

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.