有没有可能asp.net mvc引擎不能处理静态文件?
我可以在IIS级别或其他级别执行此操作吗?(当然不需要为静态文件创建单独的IIS网站)
发布于 2011-10-11 00:38:54
您需要为不希望通过ASP.NET MVC提供服务的特定类型的文件创建一个忽略路由。
对于要忽略的文件类型,将以下内容添加到您的路由中。
以下内容适用于根目录中的文件:
routes.IgnoreRoute("{file}.css");
routes.IgnoreRoute("{file}.jpg");
routes.IgnoreRoute("{file}.gif");如果您想忽略特定目录中的文件,可以这样做:
routes.IgnoreRoute("assets/{*pathInfo}");如果您想将这些合并到一个路径中,您可以(例如,忽略目录中特定类型的文件):
routes.IgnoreRoute("{assets}", new { assets = @".*\.(css|js|gif|jpg)(/.)?" });这个overload of IgnoreRoute接受一个url (第一个参数)和一个要忽略的约束对象。
由于ASP.NET MVC中的RouteConstraints可以通过多种方式实现(包括正则表达式),因此可以将标准正则表达式放入第二个参数中。
如果你想实现一个自定义的约束,there is lots of useful documentation on that subject (如果你的约束在运行时是动态的)。
发布于 2014-08-18 17:24:12
注意,@george-stocker的答案只适用于根目录中的静态文件!
要捕获所有可能的目录/子目录中的静态文件,请使用带有“条件”的忽略规则,如下所示:
routes.IgnoreRoute("{*allfiles}", new { allfiles = @".*\.(css|js|gif|jpg|png)" });发布于 2011-10-11 03:52:41
静态文件不会由ASP.NET MVC处理,除非您有与静态文件的URL匹配的路由。也许你问的是由ASP.NET处理的静态文件,在这种情况下,你不应该使用runAllManagedModulesForAllRequests="true"。这是一个包含更多信息的post。
https://stackoverflow.com/questions/7715934
复制相似问题