.NET缩小-在子目录中查找缩小的文件

.NET缩小-在子目录中查找缩小的文件,.net,asp.net-mvc,bundling-and-minification,.net,Asp.net Mvc,Bundling And Minification,是否可以使用.NET缩小/捆绑机制创建一个捆绑包来搜索子目录中的缩小文件: 未压缩: /css/jquery-ui.css /css/fullcalendar.css /css/bootstrap.css 缩小: /css/minified/jquery-ui.min.css /css/minified/fullcalendar.min.css /css/minified/bootstrap.css 我有大约12个独立的样式表和20多个脚本,压缩版本是原来的两倍。我想让他们分开只是为了组织一

是否可以使用.NET缩小/捆绑机制创建一个捆绑包来搜索子目录中的缩小文件:

未压缩:

/css/jquery-ui.css
/css/fullcalendar.css
/css/bootstrap.css
缩小:

/css/minified/jquery-ui.min.css
/css/minified/fullcalendar.min.css
/css/minified/bootstrap.css

我有大约12个独立的样式表和20多个脚本,压缩版本是原来的两倍。我想让他们分开只是为了组织一点。这可能吗?

在Asp.Net MVC中进行绑定和缩小的方式是通过运行时的动态处理。创建捆绑包时,可以将其注入任何Asp.Net页面。如果您处于调试模式,bundler将以完整的形式发送包中的每个项目,以便于调试。如果您处于发布模式,bundler会自动将捆绑包中各个文件的内容解析为单个内存文件流,然后将其缩小。无需在项目中明确包含css/javascript文件的完整版本和缩小版本。然而,根据以下文件:

捆绑框架遵循以下几种常见约定:

  • 当“FileX.min.js”和“FileX.js”存在时,选择要发布的“.min”文件
  • 选择非“.min”版本进行调试
  • 忽略仅由IntelliSense使用的“-vsdoc”文件(如jquery-1.7.1-vsdoc.js)
基本上,如果您同时拥有完整版本和缩小版本,那么框架将更喜欢使用预缩小版本,而不是缩小文件本身

在发布模式下加载页面时,绑定和缩小的效果表现为整个绑定的单个css或js文件流,由对服务器的单个调用表示,例如
http://localhost/MvcBM_time/bundles/AllMyScripts?v=r0sLDicvP58AIXN_mc3QdyVvVj5euZNzdsa2N1PKvb81

实际上,创建了一个与包名称匹配的唯一路由(本例中为
AllMyScripts
)。查询字符串
v
有一个值标记,它是用于缓存的唯一标识符。只要捆绑包没有更改,ASP.NET应用程序将使用此令牌请求
AllMyScripts
捆绑包。如果捆绑包中的任何文件发生更改,ASP.NET优化框架将生成一个新的令牌,以保证浏览器对捆绑包的请求将获得最新的捆绑包


至于包含来自多个目录的文件,最简单的方法是使用通配符模式匹配。
Include
方法中指定的虚拟路径和
IncludeDirectory
方法中的搜索模式可以接受一个
*
通配符作为最后一个路径段中的前缀或后缀。搜索字符串不区分大小写。
IncludeDirectory
方法可以选择搜索子目录。

我知道所有这些。我只希望捆绑程序使用我的.min文件(如果存在),但我希望它们位于主目录的另一个目录中。是的,正如我在最后所述,
IncludeDirectory
方法具有搜索子目录的选项。例如,
bundles.Add(newstylebundle(“~/allStyles”).IncludeDirectory(“~/Styles”,“*.css”,true))
会将所有内容添加到
/Styles
目录及其所有子目录中。我想这样做可以满足我的要求。您可以编写自己的包,在另一个目录中查找。