我有一个生成SVG输出的服务器端脚本。我正在使用MVC3,在RenderSVG方法中,我返回SVG的内容,如下所示:
return Content(svgContent, "text/xml; charset=utf-8");
在这种情况下,svgContent
只是SVG文件的内容。如果我直接导航到我的RenderSVG方法,它会按预期渲染我的图像。但是,如果我设置与CSS标记的background-image
属性相同的URL,则不会呈现。我使用的是最新版本的Chrome,可以确认正常的SVG文件正常呈现为背景图像。但是这个服务器端版本没有。
任何想法我做错了什么?以下是原始图像和服务器端版本的响应标头。在每种情况下,图像的内容都是相同的。
原始回复标题
HTTP/1.1 304 Not Modified
Last-Modified: Mon, 23 Sep 2013 04:56:16 GMT
Accept-Ranges: bytes
ETag: "018f63b19b8ce1:0"
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
日期:星期四,2014年1月23日11:38:38 GMT
脚本响应标题
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-AspNetMvc-Version: 4.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Thu, 23 Jan 2014 11:39:29 GMT
Content-Length: 490
答案 0 :(得分:9)
尝试使用"image/svg+xml"
作为svg的mime类型。
return Content(svgContent, "image/svg+xml; charset=utf-8");