如何使用 Visual Studio 為 SVG 和 Web 測試配置 IIS?
假設我有一個包含 svg 圖像的簡單網頁:
<img src="foobar.svg" alt="not working" />
如果我將此頁面設為靜態 html 頁面並直接查看它,則會顯示 svg。如果我輸入這個 svg 的地址——它就會顯示出來。
但是,當我將其製作為 .aspx 頁面並從 Visual Studio 動態啟動它時,我會得到
alt
文本。如果我輸入這個 svg 的地址(來自本地主機,而不是本地文件)——瀏覽器會嘗試下載它而不是顯示。我已經在 IIS 中定義了 mime 類型(對於整個伺服器——“image/svg+xml”)並重新啟動了 IIS。效果和之前一樣。
**問題:**我應該多做些什麼?
更新
WireShark 不起作用(它在文件中),我也嘗試了 RawCap,但它無法跟踪我的連接(奇怪),幸運的是 Fiddler 工作:
來自客戶:
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
來自伺服器的回答:
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. ***
作為記錄,這裡是 Fiddler 的有用問答: https ://stackoverflow.com/questions/826134/how-to-display-localhost-traffic-in-fiddler-while-debugging-an-asp-net-applicati
從您的 Fiddler 跟踪來看,您似乎正在使用內置的 Visual Studio Web 伺服器為您的頁面提供服務:
Server: ASP.NET Development Server/10.0.0.0
如果這是由 IIS7 提供的,那麼我們會看到:
Server: Microsoft-IIS/7.5
內置的 Visual Studio Web 伺服器只有一組有限的 mime 類型可以提供服務,並且不知道您為 IIS7 設置的 mime 類型。不久前,我在 Stack Overflow 上寫了一個類似問題的答案:
內置伺服器將您的
.svg
文件提供為:Content-Type: application/octet-stream
這可能是導致瀏覽器提示下載的原因。
在 Visual Studio 中,通過打開站點的項目屬性並從垂直選項卡列表中選擇“Web”選項卡來檢查您是否正在使用 IIS Express:
如果您沒有安裝 IIS 7.5 Express,您可以從這裡獲取它:
您將需要 Visual Studio 2010 Service Pack 1 才能充分利用:
http://support.microsoft.com/kb/983509
IIS Express 支持
Visual Studio 2010 SP1 使您能夠使用 Internet 資訊服務 (IIS) 7.5 Express 作為網站和 Web 應用程序項目的本地託管伺服器。
注意IIS 7.5 Express 不包含在 SP1 中,您必須單獨下載。有關詳細資訊,請訪問以下部落格: http ://weblogs.asp.net/scottgu/archive/2011/01/03/vs-2010-sp1-beta-and-iis-developer-express.aspx
完成後,您可以將
.svg
mime 類型添加到應用程序的web.config
文件中:<configuration> <system.webServer> <staticContent> <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> </staticContent> </system.webServer> </configuration>