将静态文件映射到备用路径

时间:2015-04-24 15:09:53

标签: asp.net asp.net-mvc iis

所以我在磁盘上的这个位置有一个MVC网站:C:\MyApp\Applications\1.0.0.0,但我在共享位置有静态资源,例如:C:\OtherApps\myapp\css\site.css

如何拦截对我的MVC应用程序的静态文件请求并将路径映射到此备用资源位置?我有IHttpHandler可以应用于特定路径,但我想对所有静态文件(与MVC路由不匹配的东西)执行此操作。

注意:没有任何内容来自备用位置,因此重写不起作用。

1 个答案:

答案 0 :(得分:0)

所以答案是指示ASP.NET通过将其添加到模块部分来处理所有请求:

<modules runAllManagedModulesForAllRequests="true"></modules>

然后放入一个处理所有内容的处理程序(在所有其他处理程序之后):

<add name="static-files" verb="GET" path="*" type="MyApp.HttpHandlers.FileHttpHandler, MyApp"/>

使ASP.NET处理所有内容(包括静态文件)会有轻微的性能损失,但这对于我们的站点是必要的,并且大多数事情都会从CDN中检索出来。