Załóżmy, że mam prostą stronę internetową z obrazem svg:
<img src="foobar.svg" alt="not working" />
Jeśli utworzę tę stronę jako statyczną stronę HTML i wyświetlę ją bezpośrednio, wyświetli się svg. Jeśli wpiszę adres tego pliku svg - zostanie wyświetlony.
Ale kiedy utworzę to jako stronę .aspx i uruchamiam dynamicznie z Visual Studio, otrzymuję alt
tekst. Jeśli wpisuję adres tego pliku SVG (z localhost, a nie jako plik lokalny) - przeglądarka próbuje go pobrać zamiast wyświetlać.
Zdefiniowałem już typ MIME w IIS (dla całego serwera - „image / svg + xml”) i zrestartowałem IIS. Taki sam efekt jak poprzednio.
Pytanie: co powinienem zrobić więcej?
Aktualizacja
WireShark nie działa (jest w dokumentacji), próbowałem również RawCap, ale nie mogę wyśledzić mojego połączenia (dziwne), na szczęście Fiddler pracował:
Od klienta:
GET http://127.0.0.1:1731/svg/document_edit.svg HTTP/1.1
Host: 127.0.0.1:1731
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:10.0.1) Gecko/20100101 Firefox/10.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Odpowiedź z serwera:
HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Thu, 16 Feb 2012 11:14:38 GMT
X-AspNet-Version: 4.0.30319
Cache-Control: private
Content-Type: application/octet-stream
Content-Length: 87924
Connection: Close
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:
*** FIDDLER: RawDisplay truncated at 128 characters. Right-click to disable truncation. ***
Dla przypomnienia, tutaj przydatne pytania i odpowiedzi dotyczące Fiddlera: /programming/826134/how-to-display-localhost-traffic-in-fiddler-while-debugging-an-asp-net-applicati
<img src...
jak pokazano powyżej, aspx jest „tłumaczony” na pełną stronę HTML, ale wysyłanie całej zawartości (HTML, a następnie SVG) jest wykonywane przez IIS.