C# MVC路由静态文件
我正在使用一个遗留swf文件,该文件正在控制器/操作路由中查找静态路由。例如,它正在尝试下载该文件C# MVC路由静态文件,c#,asp.net-mvc,asp.net-mvc-3,maproute,C#,Asp.net Mvc,Asp.net Mvc 3,Maproute,我正在使用一个遗留swf文件,该文件正在控制器/操作路由中查找静态路由。例如,它正在尝试下载该文件 http://localhost:59801/Resource/Details/ClearExternalPlaySeekMute.swf 当文件存在于根目录中时: http://localhost:59801/ClearExternalPlaySeekMute.swf 我可以使用MapRoute将此URL映射到根目录吗?这应该适合您,但我认为通过IIS会更好 routes.IgnoreRou
http://localhost:59801/Resource/Details/ClearExternalPlaySeekMute.swf
当文件存在于根目录中时:
http://localhost:59801/ClearExternalPlaySeekMute.swf
我可以使用
MapRoute
将此URL映射到根目录吗?这应该适合您,但我认为通过IIS会更好
routes.IgnoreRoute(“{file}.swf”)代码>
我记得一篇非常好的帖子。如果我找到它,我一定会参考它
基本上相同的问题 您可以在IIS中使用该模块。安装后,只需添加以下重写规则:
<system.webServer>
<rewrite>
<rules>
<rule name="Rewrite Static Flash file" stopProcessing="true">
<match url="^Resource/Details/ClearExternalPlaySeekMute.swf$" />
<action type="Rewrite" url="ClearExternalPlaySeekMute.swf" />
</rule>
</rules>
</rewrite>
</system.webServer>
现在,当对代码> >资源/详细信息/ CurrasxTynalPalySkutoMut.SWF 时,它将由<代码> /CurrasxTynalPalySkutoMut.Servf .< /P>服务,我确实考虑了这一点,但当我调试本地W/IIS Express时又会如何?因为IIS Express使用的是相同的IIS二进制文件(以及完整IIS的大多数特性)。您可以使用url重写url重写是内置的IIS Express-因此,在IIS Express中完全无需执行任何操作(除了将我向您展示的部分放在您的web.config中)。对于IIS,您必须安装Url重写模块。但这和在服务器管理器中启用该功能一样简单,我实际上需要将该内容重新定向到根目录,而不是忽略文件路径。URL是在swf文件中硬编码的。这个答案是正确的,但我认为您更大的问题是您使用的是ASP.NET MVC附带的catch all路由定义,您不应该这样做。您应该更明确地定义路由,这样静态文件就可以得到服务,而不会影响路由。