首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.Net IgnoreRoutes不工作

ASP.Net IgnoreRoutes不工作
EN

Stack Overflow用户
提问于 2013-03-25 04:50:14
回答 3查看 274关注 0票数 1

我有一个svg文件作为我的资产,并且在routeconfig中,我提到了下面的代码

代码语言:javascript
复制
    routes.IgnoreRoute("{*svg}", new { svg = @"(.*/)?.svg(/.*)?" });

这似乎在cassini (Visual Studio 2012 Buit-in Deployment Server)上工作得很好,但当我将它部署到Azure时,我得到了一个404。

我的IgnoreRoute语句正确吗?或任何其他解决方案?所有其他图像,样式表似乎工作正常。

在此之前非常感谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-17 09:43:40

您永远不必忽略物理存在于磁盘上的文件的路由,路由模块将不会尝试路由这些请求。您只需要忽略到其他虚拟资源的路由。

Azure网站没有为.svg文件配置mime类型,至少在去年年底还没有。你可以在web.config文件的<system.webserver>部分中为svg配置mime类型:

代码语言:javascript
复制
<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
EN

Stack Overflow用户

发布于 2013-07-05 20:38:12

看看Phil's Blog,我认为你需要的是:

代码语言:javascript
复制
routes.IgnoreRoute("{*allsvg}", new {allsvg=@".*\.svg(/.*)?"});

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2013-07-16 13:50:41

您声明路由的顺序是什么?它可能是上面的一个,你有一个默认的或捕获所有的路由,它实际上已经处理了请求,所以你的IgnoreRoute永远不会被击中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15603831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档