jQuery's jquery-1.10.2.min.map uruchamia 404 (nie znaleziono)

1061

Widzę komunikaty o błędach dotyczące pliku min.map, ponieważ nie można ich znaleźć:

GET jQuery's jquery-1.10.2.min.map uruchamia 404 (nie znaleziono)


Zrzut ekranu

wprowadź opis zdjęcia tutaj

Skąd to się bierze?

Paul Irish
źródło
1
Aby rozwiązać problem, nie podałem szczegółów tej odpowiedzi. Moja strona używa tylko pliku js, a nie mapy. Po prostu wyczyściłem pamięć podręczną przeglądarki, aby rozwiązać ten problem, i ponownie uruchomiłem przeglądarkę. Zaczęło się pojawiać, gdy zacząłem otrzymywać błąd 500 serwera wewnętrznego na kompilatorze generycznym programu ASP.NET (ExtDirectProxy.ashx), który przesłał dane do jquery w celu załadowania strony. stackoverflow.com/questions/26135251/…
MacGyver
1
zmień potrzebną wersję i pobierz ją z poniższego adresu
Iman
1
Spowalnia to pobieranie, ponieważ przeglądarki pobierają to, nawet jeśli nie są potrzebne.
Quentin 2
1
@ Quentin2 zgodnie z html5rocks.com/en/tutorials/developertools/sourcemaps Plik mapy źródłowej zostanie pobrany tylko wtedy, gdy masz włączone mapy źródłowe i otwarte są narzędzia programistyczne.
Mathemats,

Odpowiedzi:

1271

Jeśli Chrome DevTools donosi 404 dla pliku .map (być może jquery-1.10.2.min.map, jquery.min.mapalbo jquery-2.0.3.min.map, ale może się zdarzyć z niczego) Pierwszą rzeczą jest wiedzieć, to jest wymagane tylko przy korzystaniu z DevTools. Twoi użytkownicy nie będą uderzać w ten 404.

Teraz możesz to naprawić lub wyłączyć funkcję sourcemap.

Poprawka: pobierz pliki

Następnie jest to łatwa naprawa. Wejdź na http://jquery.com/download/ i kliknij link Pobierz plik mapy dla swojej wersji, a będziesz również chciał pobrać nieskompresowany plik.

wprowadź opis zdjęcia tutaj

Posiadanie pliku mapy umożliwia debugowanie zminimalizowanego jQuery za pomocą oryginalnych źródeł, co pozwoli zaoszczędzić dużo czasu i frustracji, jeśli nie lubisz zajmować się nazwami zmiennych, takimi jak ai c.

Więcej informacji o sourcemaps tutaj: Wprowadzenie do map źródłowych JavaScript

Unik: wyłącz sourcemaps

Zamiast pobierać pliki, możesz alternatywnie całkowicie wyłączyć mapy źródłowe JavaScript w ustawieniach. To dobry wybór, jeśli nigdy nie planujesz debugować JavaScript na tej stronie. Użyj ikony koła zębatego w prawym dolnym rogu DevTools, aby otworzyć ustawienia, a następnie: wprowadź opis zdjęcia tutaj

Paul Irish
źródło
9
Głosuję na to (mimo że odpowiedziałeś na własne pytanie), ponieważ po raz pierwszy zauważyłem to dzisiaj. Doprowadzało mnie to do szału, gdy próbowałem to rozgryźć, a potem zauważyłem ten sam błąd 404 na 2 stronach, nad którymi pracowałem, i przyszła mi do głowy opcja „włącz mapy źródłowe” ... to właśnie dostaję za oglądanie twoich narzędzi programistycznych mówi i włącza wszystko na raz. Przejrzę dokumenty, które podałeś.
adam-asdf
47
Mam dwie rzeczy do dodania. 1) Pobranie pliku mapy jQuery nie wystarczy, będziesz również potrzebować nieskompresowanego kodu źródłowego (w przeciwnym razie podczas debugowania zobaczysz pusty plik jquery - * .js). 2) Jeśli ładujesz jQuery z jednego z CDN, wszystkie trzy pliki (mapa, skompresowany i nieskompresowany kod źródłowy) znajdują się w tej samej lokalizacji i możesz od razu rozpocząć debugowanie.
Konrad Dzwinel,
42
Nie jestem pewien, czy 404 powinno zostać podniesione w tym celu z DevTools, myli ludzi, jak się wydaje. Niemniej przynajmniej teraz wiem, jak sobie z tym poradzić. Również @ adam-asdf, abyś wiedział, że jesteś aktywnie zachęcany do odpowiedzi na swoje własne pytanie na SO ... meta.stackexchange.com/questions/17845/…
Greg
12
Zgadzam się z @Greg. Zgłoszenie błędu 404 w konsoli dla mapy źródłowej (która została zażądana w imieniu Chrome / DevTools) nie wydaje się bardzo pomocne. Zwłaszcza, że ​​wiele osób nawet nie zrozumie, dlaczego (lub skąd) ten zasób jest wymagany.
idbehold
9
@ SpYk3HH Całkowicie w porządku jest akceptacja własnej odpowiedzi, a edytowanie bibliotek stron trzecich nie jest naprawdę wskazane .. ponieważ jeśli chcesz zaktualizować rzeczy, zapomnisz, co zostało zmienione.
Lipis
276

Możesz usunąć 404, usuwając linię

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

z górnej części pliku jQuery.

Górna część pliku jQuery będzie wyglądać tak.

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

Po prostu zmień to na

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

Cel mapy źródłowej

Zasadniczo jest to sposób na mapowanie połączonego / zminimalizowanego pliku z powrotem do stanu niezbudowanego. Podczas kompilacji do produkcji, wraz z minimalizowaniem i łączeniem plików JavaScript, generujesz mapę źródłową, która zawiera informacje o twoich oryginalnych plikach. Gdy przeszukujesz określony numer wiersza i kolumny w wygenerowanym JavaScript, możesz wyszukać w mapie źródłowej, która zwraca pierwotną lokalizację. Narzędzia dla programistów (obecnie kompilacje nocne WebKit, Google Chrome lub Firefox 23+) mogą automatycznie analizować mapę źródłową i sprawiać, by wyglądała, jakbyś uruchamiał nieuprawnione i niepołączone pliki. (Przeczytaj więcej na ten temat tutaj )

kiranvj
źródło
Przepraszam, miałem na myśli: czy jest jakaś okazja, kiedy potrzebowałbym tej linii?
Flion
6
Wymagany tylko wtedy, gdy trzeba debugować zminimalizowany kod źródłowy JS. Sprawdź drugi akapit tutaj, aby uzyskać więcej informacji html5rocks.com/en/tutorials/developertools/sourcemaps
kiranvj
5
Żałuję, że nie widziałem tego przed wykonaniem wybranej odpowiedzi. Jest to o wiele łatwiejsze i POWINNA być podstawową odpowiedzią. Samoopcja operacji jest dobra dla informacji, ale jest zdecydowanie drugorzędna, ponieważ jest to pierwsze pytanie, które pojawia się, kiedy google szukają sposobu na pozbycie się tej irytacji.
SpYk3HH
13
Edycja bibliotek w celu pozbycia się takich rzeczy nie jest dobrym wyborem. Za każdym razem, gdy aktualizujesz jquery, ta linia będzie tam ponownie.
Arman P.
6
Od stycznia 2014 r. Referencje sourcemap nie są uwzględniane w dystrybucji jQuery.
Dan Esparza
44

Jak ogłoszono w jQuery 1.11.0/2.1.0 Beta 2 Releasedźródłowej mapie, komentarz zostanie usunięty, więc problem nie pojawi się w nowszych wersjach jQuery.

Oto oficjalne ogłoszenie:

Jedną ze zmian, które wprowadziliśmy w tej wersji beta, jest usunięcie komentarza do sourcemap. Sourcemaps okazały się bardzo problematyczne i zagadkowe dla programistów, generując dziesiątki pomieszanych pytań na forach takich jak StackOverflow i powodując, że użytkownicy sądzili, że sam jQuery został uszkodzony.

W każdym razie, jeśli musisz użyć mapy źródłowej, nadal będzie ona dostępna:

Nadal będziemy generować i dystrybuować mapy zasobów, ale musisz dodać odpowiedni komentarz do mapy zasobów na końcu zminimalizowanego pliku, jeśli przeglądarka nie obsługuje ręcznego kojarzenia plików map (obecnie nie ma żadnych). Jeśli wygenerujesz własny plik jQuery przy użyciu niestandardowego procesu kompilacji, komentarz mapowania będzie obecny w zminimalizowanym pliku i mapa zostanie wygenerowana; możesz go zostawić i użyć sourcemaps lub edytować i całkowicie zignorować plik mapy.

Tutaj możesz znaleźć więcej szczegółów na temat zmian.


Tutaj można znaleźć potwierdzenie, że wraz z jQuery 1.11.0/2.1.0 Releasedkomentarzem mapy źródłowej w zminimalizowanym pliku jest usuwany.

gotqn
źródło
1
Ale gdyby nie to zamieszanie, nigdy bym tego tutaj nie sprawdził i wiedział, że istnieją mapy. Ręcznie dodawałem spacje do zminimalizowanych plików, do których chciałem zajrzeć.
icedwater
1
Przeglądarka Chrome ma przycisk, który całkiem sformatuje zminimalizowany plik. Dostępne są również prettifier online.
Quentin 2
16

Nowe wersje jQuery wymagają tego pliku http://code.jquery.com/jquery-1.10.2.min.map

Użyteczność tego pliku jest opisana tutaj http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/

Aktualizacja:

jQuery 1.11.0 / 2.1.0

// komentarz sourceMappingURL nie jest zawarty w skompresowanym pliku .

Andres Separ
źródło
3
Nie, nie wierzę, że jQuery „wymaga” tego pliku. Jest to wymagane tylko wtedy, gdy chcesz użyć mapy źródłowej podczas debugowania, w którym to przypadku potrzebny jest zarówno plik src, jak i plik mapy.
styfle
1
Cześć @styfle, mapa źródłowa była wymagana w wersji 1.10.2, ale od wersji 1.11.0 / 2.1.0 należy ją dodać ręcznie, ponieważ wielu użytkowników dotknęło błąd, który wystąpił w konsoli przeglądarki
Andres Separ
9

Rozumiem, że przeglądarka, przynajmniej Chrome, domyślnie nie wyłącza mapowania źródła. Oznacza to, że użytkownicy aplikacji domyślnie wyzwalają to żądanie mapowania źródła.

Możesz usunąć mapowanie źródła, usuwając //@ sourceMappingURL=jquery.min.mapz pliku JavaScript.

James J. Ye
źródło
9

Jeśli chcesz uzyskać inną wersję pliku mapy źródłowej, możesz użyć tego linku http://code.jquery.com/jquery-x.xx.x.min.map

Zamiast tego x.xx.x wpisz swój numer wersji.

Uwaga: niektóre linki, które otrzymujesz tą metodą, mogą być uszkodzone :)

Andriyun
źródło
8

Po wykonaniu instrukcji zawartych w innych odpowiedziach musiałem usunąć wersję z pliku mapy, aby to zadziałało.

Przykład: Zmień nazwę

jquery-1.9.1.min.map

do

jquery.min.map

drobison
źródło
6

Przedstawiono mi ten sam numer. Przyczyną było dla mnie Grunt połączenie mojego pliku JavaScript.

Używałem a ;\njako separatora, który spowodował ścieżkę do mapy źródłowej do 404.

jquery.min.map;Zamiast tego szukały narzędzi programistycznych jquery.min.map.

Wiem, że to nie jest odpowiedź na pierwotne pytanie, ale jestem pewien, że istnieją inni o podobnej konfiguracji Grunta.

nickspiel
źródło
5

jQuery 1.11.0 / 2.1.0 komentarz // sourceMappingURL nie jest zawarty w skompresowanym pliku.

użytkownik3235672
źródło
1

Zakładając, że sprawdziłeś, czy plik jest rzeczywiście obecny na serwerze, może to być również spowodowane ograniczeniem przez serwery, które typy plików są obsługiwane:

Molomby
źródło