我有一个svg文件作为我的资产,在routeconfig中,我已经提到了下面的代码
routes.IgnoreRoute("{*svg}", new { svg = @"(.*/)?.svg(/.*)?" });
这似乎适用于cassini(Visual Studio 2012 Buit-in Deployment Server),但当我将其部署到Azure时,我得到了404.
我的IgnoreRoute声明是对的吗?或任何其他解决方案?所有其他图像,样式表似乎都可以正常工作。
提前多多感谢。
答案 0 :(得分:1)
您永远不必忽略磁盘上物理存在的文件的路由,路由模块不会尝试路由这些请求。您只需要忽略到其他虚拟资源的路由。
Azure网站没有为.svg文件配置的mime类型,至少在去年年底他们没有。您可以在web.config文件的<system.webserver>
部分为svg配置mime类型:
<staticContent>
<remove fileExtension=".svg"/>
<mimeMap fileExtension=".svg" mimeType="image/svg+xml"/>
</staticContent>
删除是为了防止已经有.svg条目的服务器出错。添加重复的fileExtension是错误的,但是删除不存在的扩展名时不会出错。
更多信息:Configuration Tips For ASP.NET MVC 4 on a Windows Azure Website
答案 1 :(得分:0)
答案 2 :(得分:0)
您宣布路线的顺序是什么?可能是在那个上面你有一个默认或全部实际已经处理了请求的路由,所以你的IgnoreRoute永远不会被击中。