Nie udało się załadować zasobu w Chrome

194

Na stronie internetowej jest kilka zdjęć.

Inne przeglądarki pobierają je poprawnie, ale Chrome ich nie ładuje.

W konsoli programisty wyświetla następujący komunikat dla każdego obrazu:

Wgranie zasobu nieudane

Ten problem pojawia się tylko w Chrome.

Co to jest?

AntonAL
źródło
Czy możesz pokazać HTML? Potrzebujemy więcej informacji, aby pomóc w rozwiązaniu problemu.
Andre,
1
Powodem, dla którego ustaliłem nagrodę za to pytanie, jest to, że pojawia się on od czasu do czasu i nie jest związany tylko z obrazami. Witryna, nad którą pracuję, działa dobrze w Firefoksie i czasami zawiesza się w Chrome.
1
Jak rozwiązałeś problem?
maks
Sprawdź, czy rozszerzenia Google Chrome blokują żądania.
Samuel Edson

Odpowiedzi:

280

Niedawno natknąłem się na ten problem i odkryłem, że jest on spowodowany rozszerzeniem „Adblock” (przypuszczam, że to dlatego, że miałem w nazwie pliku słowa „banner” i „reklama”).

Aby szybko sprawdzić, czy to twój problem, uruchom Chrome w trybie incognito z wyłączonymi rozszerzeniami ( ctrl+ shift+n ) i sprawdź, czy Twoja strona działa teraz. Pamiętaj, że domyślnie wszystkie rozszerzenia będą już wyłączone w trybie incognito, chyba że specjalnie je skonfigurujesz do uruchamiania (przez chrome://extensions).

sarink
źródło
2
Tak, to jest to! Mój miał „Popup” w nazwie i to było przyczyną problemu.
Janik Zikovsky,
Dziękuję Ci. witryna localhost była w porządku, raz pojawił się problem, kiedy pomyślałem, że ...
Sam Doidge
1
Dzięki! Spędziłem ponad 30 minut próbując dowiedzieć się, dlaczego mój kod nie działa w Chrome.
hejomi,
2
Dzięki za uratowanie mnie. W moim adresie URL było słowo „reklama”. Po usunięciu zadziałało. Ale czy jest na to jakieś obejście? Nie chcę zmieniać mojego adresu URL.
Amit,
2
Mam też ten problem, ale nie mam zainstalowanego żadnego rozszerzenia i najnowszej wersji, co to zrobić?
TheCrazyProfessor
31

Sprawdź kartę sieci, aby sprawdzić, czy Chrome nie pobrał żadnego pliku zasobów.

ismail
źródło
2
@Cartman Przepraszam za moją ignorancję. Co rozumiesz przez kartę Sieć?
Kliknij prawym przyciskiem myszy dowolny element na stronie, wybierz „Inspect Element”, otworzy się „Inspector”, Inspector ma wiele kart do debugowania strony internetowej, jedną z nich jest karta „Network”, kliknij ją, załaduj ponownie stronę i sprawdź za dowolny błąd sieci.
ismail
@Cartman - Dzięki, często używam inspektora i nie mogę znaleźć karty sieci. Mam elementy, zasoby, skrypty, profil osi czasu, pamięć masową, audyty i konsolę. Przeszukam go i spróbuję zrozumieć, dlaczego nie mam karty sieciowej.
1
Używam Chromium 10.0.xx.xx, upewnij się, że używasz ostatniej migawki.
ismail
@Cartman - Dzięki za chromowaną końcówkę - nie był świadomy tego projektu. Zainstalowana wersja 10.0.621.0 (70119). Odtworzyłem problem. Wiadomość na karcie Sieć to 16 żądań przesłanych 0B. Konsola mówi: GET localhost: 51707 / Content / Theme.css undefined (undefined) Nawet pomyślałem 20 sekund przed pobraniem go bez żadnego problemu.
17

Na wypadek, gdyby komukolwiek to pomogło, miałem dokładnie ten sam problem i odkryłem, że jest to spowodowane rozszerzeniem Chrome „Do Not Track Plus” (wersja 2.0.8). Po wyłączeniu tego rozszerzenia obraz został załadowany bez błędów.

nuri
źródło
Dzięki za wskazówkę, byłem w tej samej sytuacji i przeciągałem włosy, co było przyczyną
jasalguero,
To, co mi się przydarzyło, Chrome nie ładował plików CSS z powodu rozszerzenia AdBlock, kiedy anulowałem rozszerzenie, wszystko działało dobrze.
Chani Poz
14

Istnieje również opcja wyłączenia pamięci podręcznej zasobów sieciowych. Może to być najlepsze w środowiskach programistycznych.

  1. Kliknij prawym przyciskiem myszy chrome
  2. Przejdź do „inspekcji elementu”
  3. Poszukaj karty „sieci” gdzieś u góry. Kliknij to.
  4. Zaznacz pole wyboru „wyłącz pamięć podręczną”.
John KTejik
źródło
czy mógłbyś to sprawdzić raz stackoverflow.com/questions/42693371/... @john ktejik
Yokesh Varadhan
Zrobiło to dla mnie.
JayJay123
Dzięki rozwiązaniu szczególnego problemu dla mnie. Robi to tylko dla programistów. Jak wykorzystać tę wiedzę i wprowadzić ją do produkcji, aby użytkownik nie miał już tego problemu. Czy to tylko oznacza, że ​​kliknięcie, które daje mi ten błąd, powinno za każdym razem wyczyścić pamięć podręczną lub coś podobnego?
Stefano Martinengo
Zaoszczędziłeś mi dużo czasu. Próbowałem twoich 1,2 i 4 nut nie 4. Teraz zaznaczyłem pole wyboru „wyłącz pamięć podręczną”, jest wiele różnic.
Cześć
8

Rozwiązanie Kabira jest prawidłowe. Mój adres URL obrazu to

/images/ads/homepage/small-banners01.png, 

i to zadziałało AdBlock. Nie był to dla mnie problem między domenami i nie powiódł się zarówno na hoście lokalnym, jak i w Internecie.

Używałem karty sieciowej Chrome do debugowania i znajdowania bardzo mylących wyników dla tych konkretnych obrazów, których nie udało się załadować. Pierwsze żądanie nie zwróci odpowiedzi (Status „(w toku)”). Później pojawiło się drugie żądanie, w którym wymieniono oryginalny adres URL, a następnie „Przekieruj” jako inicjatora. Wszystkie nagłówki żądań przekierowania dotyczyły tego samego krótkiego wiersza danych zakodowanych w standardzie base64 i każdy nie zwrócił żadnej odpowiedzi, chociaż status miał wartość „Udane”:

GET      data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg== HTTP/1.1

Później zauważyłem, że te style wbudowane zostały dodane do wszystkich elementów obrazu:

    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;

Wreszcie nie otrzymałem żadnych komunikatów „nie udało się załadować zasobu” w konsoli, a raczej to:

Port error: Could not establish connection. Receiving end does not exist.

Jeśli coś takiego Ci się przytrafia, prawdopodobnie ma to coś wspólnego z AdBlockiem. Wyłącz i / lub zmień nazwę swoich plików obrazów.

Ponadto z powodu wbudowanego CSS utworzonego przez AdBlock układ suwaka moich promocji został zrzucony. Podczas gdy byłem w stanie naprawić problemy z układem w CSS, zanim znalazłem rozwiązanie Kabira, CSS był nieco niepotrzebny i wpłynął na elastyczność suwaka do obsługi obrazów o różnych rozmiarach.

Lekcja brzmi: Uważaj, jak nazywacie swoje obrazy. Te obrazy nie były złośliwe ani denerwujące, ponieważ w dyskretny sposób ostrzegały odwiedzających o aktualnych promocjach i promocjach.

jmorganmartin
źródło
Jeszcze jeden powód, dla którego adBlock nie powinien istnieć.
StephenKelzer
2
adBlock powinien istnieć i musi żyć dalej
Coty Embry
7

Jeśli obrazy są generowane przez ASP Response.Write(), upewnij się, że nie dzwonisz Response.Close();. Chrome to nie lubi.

Bcolin
źródło
4

Otrzymałem ten błąd, tylko w Chrome (ostatnia wersja 24.0.1312.57 m) i tylko jeśli obraz był większy niż obraz HTML. Użyłem skryptu php do wyprowadzenia obrazu w następujący sposób:

header('Content-Length: '.strlen($data));
header("Content-type: image/{$ext}");
echo base64_decode($data);

Rozwiązałem go, dodając 1 do długości obrazu:

header('Content-Length: '.strlen($data) + 1);
header("Content-type: image/{$ext}");
echo base64_decode($data);

Wygląda na to, że Chrome nie oczekuje poprawnej liczby bajtów.

Testowany z powodzeniem w Chrome i IE 9. Mam nadzieję, że ta pomoc.

marcostrama
źródło
To samo tutaj. W moim przypadku to stos usług dodaje długość treści podczas serializacji obiektów, ale nie strumień lub tablica bajtów.
shex
Nagle „+1” w długości treści zaczyna powodować „Nieprawidłowy nagłówek fragmentu” w mojej komunikacji z Tomcat (używam mostu Java Java do komunikacji apache z tomcat). Usunąłem ten „+1” i zaczął działać normalnie w Chrome. Zniknął również błąd związany z porcją. Dziwny problem ... Nie wiem, co się stało.
marcostrama,
3

W programie Reenable (tymczasowym) obsługa showModalDialog w przeglądarce Chrome (dla systemu Windows) 37+ jest tymczasowo dostępna .

Zasadniczo utwórz nowy ciąg w rejestrze pod adresem

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\EnableDeprecatedWebPlatformFeatures

Pod kluczem EnableDeprecatedWebPlatformFeatures utwórz wartość ciągu o nazwie 1i wartości ShowModalDialog_EffectiveUntil20150430. Aby sprawdzić, czy zasada jest włączona, odwiedź chrome://policyadres URL.

Merlin051
źródło
3

Do Twojej wiadomości - miałem również ten problem i okazało się, że mój plik html zawierał plik .jpg z rozszerzeniem .JPG w wielkich literach, ale sam plik miał małe litery .jpg. To działało poprawnie lokalnie i przy użyciu Codekit, ale kiedy zostało zepchnięte do sieci, nie ładowało się. Wystarczy zmiana nazw plików, aby rozszerzenie .jpg pisane małymi literami pasowało do html.

Tony Tambe
źródło
Dla mnie to był problem :)
Clindo
2

W Chrome (Canary) odznaczyłem rozszerzenie „Appspector”. To usunęło błąd. wprowadź opis zdjęcia tutaj

MannyC
źródło
1

Zaktualizowałem przeglądarkę Chrome do najnowszej wersji i problem został rozwiązany.

Sergiu
źródło
0

Wynika to z blokowania reklam. Kiedy nazwy plików projektów zawierają słowa takie jak „reklama”, wówczas blokery reklam blokują te pliki do załadowania.

Najlepszym rozwiązaniem jest, aby nigdy nie zapisywać żadnych plików z tymi kluczami nazw.

GHULAM NABI
źródło