Apache pasniedz .svg failu, bet HTTP atbildei nav a Content-type galveni. Tādējādi pārlūkā Chrome tiek parādīts .svg failu, nevis vēlamo attēlu.

Mans mērķis ir, lai Apache kalpotu .svg failu ar galveni Content-type: image/svg+xml lai pārlūks Chrome parādītu attēlu.

Malā: The .svg fails sākotnēji nāca no šejienes: https://s3-us-west-2.amazonaws.com/s.cdpn.io/106114/bee.svg

Mans Apache konfigurācijas fails ir tīši pēc iespējas mazāks. Tas ir:

DocumentRoot /path/to/docroot ErrorLog /tmp/apache.log PidFile /tmp/apache.pid Listen 0.0.0.0:8000 ServerName 127.0.0.1 LoadModule mpm_prefork_module /usr/lib/apache2/modules/mod_mpm_prefork.so LoadModule authz_core_module /usr/lib/apache2/modules/mod_authz_core.so LoadModule mime_module /usr/lib/apache2/modules/mod_mime.so TypesConfig /etc/mime.types AddType image/svg+xml .svg 

Es palaidu Apache, kā to nodrošina Ubuntu 20.04 (versija 2.4.41-4ubuntu3).

Mans jautājums ir tāds, kādas konfigurācijas izmaiņas liks Apache nodrošināt vēlamo Content-type galvenes .svg failu?

Tāpēc es domāju, ka esmu izsekojis problēmai.

Sākumā pārlūks Chrome saglabāja kešatmiņu .svg saturs bez a Content-type.

Pēc tam es mainīju Apache konfigurāciju, lai iestatītu Content-type: image/svg+xml.

Pēc tam es pārlādēju attēlu pārlūkā Chrome. Chrome nosūta a GET pieprasījumu, bet ar dažām ar kešatmiņu saistītām galvenēm (piemēram, viena šāda galvene ir If-Modified-Since).

Apache atbild ar a 304 Not Modified statuss. Saskaņā ar Chrome izstrādātāja rīkiem šajā atbildē nav iekļauta a Content-type galveni. Ja izstrādātāja rīki ir pareizi, pārlūks Chrome nemaz nezina, ka Content-type ir mainījies.

Ja es touch .svg vai ja es notīrīšu Chrome kešatmiņu, attēls tiks atkārtoti ielādēts un tiks parādīts kā attēls.

strādāja par jums: Charles Robertson | Vēlies ar mums sazināties?