ASP.Net IgnoreRoutes 不起作用

标签 asp.net asp.net-mvc asp.net-mvc-3 azure

我有一个 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/

相关文章:

asp.net - IIS 7 工作进程瓶颈,应用程序池 ASP.NET 3.5 + 2.0 下大量等待请求

c# - 在 ASP.NET 中创建基于订阅的网站

c# - mono 未找到 View 'Index' 或其主视图

asp.net-mvc-3 - ASP.NET MVC3 如何通过跨 Action 调用共享 AsyncManager 的单个实例来避免多线程错误?

c# - 我可以在 iis 上以管理员身份运行批处理文件吗?

asp.net - 属性必须用引号引起来

c# - 比较两个文件是否相等的断言语句

jquery - 将下拉列表值获取到 mvc Controller 中以通过 Ajax 调用查看

asp.net-mvc-3 - 为什么在IIS 7.5下部署MVC 3应用程序时出现401.2/访问被拒绝错误?

asp.net-mvc-3 - 模板错误asp