如果我在ASP.NET MVC1(或2) Web应用程序中对静态资源(例如图像、JavaScript文件或CSS文件)发出请求,.NET框架是否会尝试查看该请求是否匹配路由列表,最终找不到控制器?例如,资源为/Content/Images/Foo.png,此请求是否会通过我的路由列表,无法将任何控制器/操作与此请求匹配,然后直接尝试该路径?请注意保留HTML标记。
RouteCollection.RouteExistingFiles
属性。默认情况下,路由引擎将忽略服务器上物理存在的所有文件的路由映射。简而言之,您无需为MVC应用程序链接到静态文件做任何事情。
你也可以在IIS中使用一个小技巧。我将我的js、图片、css等文件存储在虚拟目录下的Content文件夹中。
如果你在Content文件夹上右键点击,选择属性(在IIS管理器中),将其创建为虚拟目录,然后删除通配符映射。接着将Content文件夹设置回普通目录。这样就可以防止aspnet_isapi处理这些文件的请求了。