gre*_*man 14 image iis-7 configuration visual-studio-2010
假设我有一个带有 svg 图像的简单网页:
<img src="foobar.svg" alt="not working" />
Run Code Online (Sandbox Code Playgroud)
如果我将此页面设为静态 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
Run Code Online (Sandbox Code Playgroud)
来自服务器的回答:
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. ***
Run Code Online (Sandbox Code Playgroud)
作为记录,这里是 Fiddler 的有用问答:https : //stackoverflow.com/questions/826134/how-to-display-localhost-traffic-in-fiddler-while-debugging-an-asp-net-applicati
Kev*_*Kev 14
从您的 Fiddler 跟踪来看,您似乎正在使用内置的 Visual Studio Web 服务器为您的页面提供服务:
Server: ASP.NET Development Server/10.0.0.0
Run Code Online (Sandbox Code Playgroud)
如果这是由 IIS7 提供的,那么我们会看到:
Server: Microsoft-IIS/7.5
Run Code Online (Sandbox Code Playgroud)
内置的 Visual Studio Web 服务器只能提供一组有限的 mime 类型,并且不知道您为 IIS7 设置的 mime 类型。不久前,我在 Stack Overflow 上写了一个类似问题的答案:
内置服务器为您的.svg文件提供服务:
Content-Type: application/octet-stream
Run Code Online (Sandbox Code Playgroud)
这可能是导致浏览器提示下载的原因。
在 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 Information Services (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
完成后,您可以将.svgMIME 类型添加到应用程序的web.config文件中:
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
</staticContent>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37352 次 |
| 最近记录: |