Miksi yksi kuva epäonnistuu, kun muu sivu latautuu
Kolme ehtoa erottavat verkkovian estetystä pyynnöstä ja renderöintivirheestä. Selvitä URL, jonka selain valitsi, ennen kuin muutat polkua.
Sivu latautuu, teksti renderöityy ja yksi kuva jää rikkinäiseksi kuvakkeeksi. Ensimmäinen reaktio on syyttää tunnelia, koska tunneli on se, mikä muuttui. Selvitä sitä ennen, mitä URL-osoitetta selain todella pyysi kyseiselle kuvalle, koska sivun URL ja kuvan URL ovat kaksi eri todistetta. Useimmat puuttuvan kuvan ilmoitukset johtuvat isäntäkoneesta, joka ei koskaan saanut toimivaa pyyntöä, ja se vastaus maksaa yhden vilkaisun Verkko-paneeliin.
Kolme ehtoa ratkaisee, mistä etsiä
Ensimmäinen ehto on, tuleeko kuva samalta isäntäkoneelta kuin sivu. Erillinen kuvaisäntä tarvitsee oman nimipalvelunsa, oman yhteytensä ja oman TLS-identiteettinsä, joten latautuva sivu ei kerro siitä mitään.
Toinen on, estikö selain pyynnön ennen sen lähettämistä. Sekasisältö, sisältöturvakäytäntö ja referrer-säännöt voivat pysäyttää kuvan ilman tavallista palvelinvastausta, siksi listassa ei näy epäonnistunutta pyyntöä.
Kolmas on, onnistuiko toimitus ja epäonnistuiko renderöinti — tapaus, jossa tavut saapuvat ja kuva ei silti ilmesty. Näillä kolmella ehdolla on kolme eri omistajaa, ja vain ensimmäinen on verkkoasia.
| What you see | Where the fault sits |
|---|---|
| Request absent from the list | Markup, lazy loading or a policy that blocked it |
| Request failed or timed out | Resolution, route, TLS or the image host itself |
| Request returned 200, image blank | Response type, decoding or rendering |
Löydä resurssi, jonka selain todella valitsi
Sivun lähdekoodissa näkyvä URL ei usein ole se URL, jota pyydettiin. Lähdejoukot, picture-elementit ja CSS-taustat antavat selaimen valita eri resurssin näkymän leveyden, pikselitiheyden tai formaattituen perusteella. Laiskasti latautuvaa kuvaa ei ehkä pyydetä lainkaan, ennen kuin sivu saavuttaa tietyn tilan.
Tarkastele elementtiä ja pyyntöä yhdessä ja pidä aloittaja pyynnön mukana, kun raportoit ongelman. MDN:n kuvaelementin viite kattaa lähdevalinnan, latauskäyttäytymisen ja referrer-ohjauksen yhdessä paikassa, mikä riittää kertomaan, mikä attribuutti valitsi epäonnistuvan URL:n.
Kirjaa isäntänimi, tila, mahdollinen uudelleenohjausketju ja vastauksen sisältötyyppi. 200, joka palauttaa kirjautumissivun, ei ole käyttökelpoinen kuva, ja uudelleenohjaus HTML-virhesivulle näyttää samalta kuin vioittunut tiedosto, kunnes luet tyypin.
Lue tila ennen verkkoa
Aikakatkaisu, hylätty pyyntö ja dekoodausvirhe vaativat erilaiset seuraavat askeleet, ja tilakoodi on se, mikä erottaa ne. Aikakatkaisu viittaa nimipalveluun, reittiin tai isäntään, joka ei vastaa. Hylätty pyyntö viittaa käytäntöön tai valtuutuskerrokseen. Dekoodausvirhe viittaa tavuihin tai formaattiin.
Jos pyyntö ei ilmesty lainkaan, lopeta verkon katselu ja katso merkintää. Yleisin syy on lähdejoukon merkintä, jonka selain on asettanut etusijalle ja jota ei enää ole palvelimella, ja sen jälkeen elementti, jota skripti ei koskaan tehnyt näkyväksi.
Pelkästään tämä ero estää suurimman osan tämän kaltaisten ilmoitusten hukatusta työstä.
Kun selain estää sen, luettavaa vastausta ei ole
Sekasisältö on klassinen tapaus: HTTPS-sivu, joka pyytää kuvaa tavallisella HTTP:llä, saa pyynnön estetyksi eikä epäonnistuneeksi, ja konsoli kirjaa syyn. Sisältöturvakäytäntö tuottaa saman muodon, ja estetty direktiivi nimetään viestissä. Referrer-käytäntö, joka poistaa otsakkeen, voi myös saada hotlink-suojatun isännän palauttamaan kuvan sijaan paikkamerkinnän.
Lue kirjattu syy ennen verkkopolun käsittelyä, koska nämä estot eivät parane, kun reitti muuttuu. Myöskään ristiinorigin-oikeuksien lisääminen ei ole ratkaisu: kuvan näyttäminen toiselta isännältä ja sen pikselien lukeminen canvasissa ovat eri toimintoja, ja vain jälkimmäinen tarvitsee ne otsakkeet, joita ihmiset liittävät.
Sivustolla, jota ylläpidät, korjaa resurssin URL, vastaus tai käytäntö sen omistajalla ja pidä valtuutus- ja referrer-vaatimukset ennallaan. Sivustolla, jota et hallitse, lähetä sivu ja pyynnön todisteet sen tukikanavaan sen sijaan, että julkaisisit uudelleen yksityisiä tai vanhentuvia resurssilinkkejä.
Vertaa polkuja muuttamatta todisteita
Jos haluat testata pääsypolkua, pidä kaikki muu vakiona: sama sivu, sama tili, sama valittu kuva, yksi sallittu polku muutettuna. Vertaa pyyntömerkintöjä rinnakkain renderöidyn tuloksen sijaan, koska renderöity tulos kertoo, ilmestyikö kuva, ei miksi.
Uudella reitillä latautuva kuva ei todista, että reitti on valtuutettu, eikä rikkinäisenä pysyvä kuva todista, että tunnelissa on vika. Jos kuva on poistettu tai pääsyä on tarkoituksella rajoitettu, käytä tuettua vaihtoehtoa sen sijaan, että kytkisit pois varmenteen tarkistukset tai peilaisit jonkun toisen suojattua aineistoa.
Työn järjestys: tunnista valittu URL, lue sen tila ja tyyppi, tarkista kirjattu eston syy ja vertaa sitten yhtä polun muutosta kerrallaan.