首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让所有像css/images/js文件这样的静态文件不被asp.net mvc处理?

问如何让所有像css/images/js文件这样的静态文件不被asp.net mvc处理?
EN

Stack Overflow用户
提问于 2011-10-11 00:37:41
回答 4查看 19.3K关注 0票数 17

有没有可能asp.net mvc引擎不能处理静态文件?

我可以在IIS级别或其他级别执行此操作吗?(当然不需要为静态文件创建单独的IIS网站)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-10-11 00:38:54

您需要为不希望通过ASP.NET MVC提供服务的特定类型的文件创建一个忽略路由。

对于要忽略的文件类型,将以下内容添加到您的路由中。

以下内容适用于根目录中的文件:

代码语言:javascript
复制
routes.IgnoreRoute("{file}.css");
routes.IgnoreRoute("{file}.jpg");
routes.IgnoreRoute("{file}.gif");

如果您想忽略特定目录中的文件,可以这样做:

代码语言:javascript
复制
routes.IgnoreRoute("assets/{*pathInfo}");

如果您想将这些合并到一个路径中,您可以(例如,忽略目录中特定类型的文件):

代码语言:javascript
复制
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 (如果你的约束在运行时是动态的)。

票数 31
EN

Stack Overflow用户

发布于 2014-08-18 17:24:12

注意,@george-stocker的答案只适用于根目录中的静态文件!

要捕获所有可能的目录/子目录中的静态文件,请使用带有“条件”的忽略规则,如下所示:

代码语言:javascript
复制
routes.IgnoreRoute("{*allfiles}", new { allfiles = @".*\.(css|js|gif|jpg|png)" });
票数 22
EN

Stack Overflow用户

发布于 2011-10-11 03:52:41

静态文件不会由ASP.NET MVC处理,除非您有与静态文件的URL匹配的路由。也许你问的是由ASP.NET处理的静态文件,在这种情况下,你不应该使用runAllManagedModulesForAllRequests="true"。这是一个包含更多信息的post。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7715934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档