我有一个 svg 文件作为我的 Assets ,在 Routeconfig 中,我提到了以下代码
routes.IgnoreRoute("{*svg}", new { svg = @"(.*/)?.svg(/.*)?" });
这似乎与 cassini(Visual Studio 2012 内置部署服务器)配合得很好,但是当我将其部署到 Azure 时,我得到了 404。
我的 IgnoreRoute 声明正确吗?或任何其他解决方案?所有其他图像、样式表似乎都可以正常工作。
提前非常感谢。
最佳答案
您永远不必忽略物理存在于磁盘上的文件的路由,路由模块不会尝试路由这些请求。您只需忽略到其他虚拟资源的路由即可。
Azure 网站没有为 .svg 文件配置 mime 类型,至少在去年年底还没有。您可以在<system.webserver>
中为svg配置mime类型。 web.config 文件的部分:
<staticContent>
<remove fileExtension=".svg"/>
<mimeMap fileExtension=".svg" mimeType="image/svg+xml"/>
</staticContent>
删除是为了防止已经有 .svg 条目的服务器上出现错误。添加重复的文件扩展名是错误的,但删除不存在的扩展名则不是错误。
更多信息请参见:Configuration Tips For ASP.NET MVC 4 on a Windows Azure Website
关于ASP.Net IgnoreRoutes 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15603831/