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+) могут автоматически анализировать исходную карту и отображать ее так, как будто вы используете незакрепленные и не объединенные файлы. (Подробнее об этом здесь )

kiranvj
источник
Извините, я имел в виду: был ли случай, когда мне понадобилась бы эта линия?
Флион
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комментарием карты источника в минимизированном файле удаляется.

gotqn
источник
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 введите номер вашей версии.

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

Andriyun
источник
8

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

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

jquery-1.9.1.min.map

в

jquery.min.map

drobison
источник
6

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

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

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

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

nickspiel
источник
5

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

user3235672
источник
1

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

Molomby
источник