【问题标题】:map static files to alternate path将静态文件映射到备用路径
【发布时间】:2015-07-03 06:30:28
【问题描述】:
所以我在磁盘上的这个位置有一个 MVC 网站:C:\MyApp\Applications\1.0.0.0,但是我在共享位置有静态资源,例如:C:\OtherApps\myapp\css\site.css
如何拦截对我的 MVC 应用程序的静态文件请求并将路径映射到此备用资源位置?我有一个 IHttpHandler 可以应用于特定路径,但我想对所有静态文件(与 MVC 路由不匹配的东西)执行此操作。
注意:没有从备用位置提供资源,因此重写将不起作用。
【问题讨论】:
标签:
asp.net
asp.net-mvc
iis
【解决方案1】:
所以答案是通过将其添加到您的模块部分来指示 ASP.NET 处理所有请求:
<modules runAllManagedModulesForAllRequests="true"></modules>
然后放入一个处理所有事情的处理程序(在所有其他处理程序之后):
<add name="static-files" verb="GET" path="*" type="MyApp.HttpHandlers.FileHttpHandler, MyApp"/>
让 ASP.NET 处理所有内容(包括静态文件)会带来轻微的性能损失,但对于我们的网站来说这是必要的,而且大多数内容都会从 CDN 中检索到。