19 messaggi dal 17 gennaio 2011
Buongiorno,
ho un problema con IIS 7.5 e interpretazione del file svgz nel mio web config c'è

<system.webServer>
    
    
    <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
                <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
                <staticTypes>
                    <add mimeType="text/*" enabled="true" />
                    <add mimeType="message/*" enabled="true" />
                    <add mimeType="application/x-javascript" enabled="true" />
                    <add mimeType="application/atom+xml" enabled="true" />
                    <add mimeType="application/xaml+xml" enabled="true" />
                    <add mimeType="*/*" enabled="false" />
                    <add mimeType="image/svg+xml" enabled="true" />
                </staticTypes>
        </httpCompression>
    
       <staticContent>
               <remove fileExtension=".svg" />
               <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
               <remove fileExtension=".svgz" />
               <mimeMap fileExtension=".svgz" mimeType="image/svg+xml" />
               
    </staticContent>
             
        
    </system.webServer>


ma il file svgz non viene visualizzato

Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Luigi,
il file svgz è già compresso in gzip e quindi non bisogna usare l'elemento <httpCompression> perché IIS non deve comprimerlo di nuovo. Deve solo limitarsi a servirlo tale e quale al client, cosa che già fa grazie al <mimeMap> che hai aggiunto per l'estensione .svgz

Ora, il problema è che non esiste un content-type specifico per svgz, perché in fondo si tratta semplicemente di un svg compresso. Quando il browser vede arrivarsi una risposta di tipo image/svg+xml, prova a leggerla come fosse contenuto xml, ma ovviamente non lo è, perché si tratta invece di contenuto binario.

La soluzione consiste nell'indicare al browser che quello è contenuto compresso, e questo lo fai aggiungendo la seguente intestazione alla risposta HTTP.
Content-Encoding: gzip

Questa indicazione è sufficiente a comunicare al browser che deve scompattare il contenuto della risposta, prima di provare a leggerla come image/svg+xml.

Aggiungere questa intestazione è possibile se sul tuo IIS 7.5 hai installato il modulo URL Rewrite. Ecco la regola di riscrittura da usare:
http://forums.iis.net/post/1970627.aspx

Magari mantieni il tuo elemento <staticContent>, che funzionerà anche quando i mimeMap per svg e svgz sono già stati definiti.

ciao,
Moreno
Modificato da BrightSoul il 24 gennaio 2015 19.35 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.