是否可以使用.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+脚本,而且压缩版本是原来的两倍。我想让他们分开,只是为了一点组织性。这个是可能的吗?
发布于 2013-10-13 22:37:03
在Asp.Net MVC中进行捆绑和小型化的方法是在运行时通过动态处理。当您创建一个包时,它可以注入到任何Asp.Net页面中。如果您处于调试模式,绑定程序将以其完整的形式发送包中的每个项,以便于调试。如果您处于发布模式,则绑定程序会自动将包中各个文件的内容解析为内存filestream中的单个文件,然后将其缩小。没有必要在项目中显式地包含css/javascript文件的完整版本和小型化版本。然而,根据ASP.Net文档
捆绑框架遵循几个共同的约定,例如:
基本上,如果您有完整的和小型化的版本,那么框架将更倾向于使用预小型化版本而不是缩小文件本身。
在发布模式下加载页面时,捆绑和缩小的效果将显示为整个包的单个css或js文件流,由对服务器(例如http://localhost/MvcBM_time/bundles/AllMyScripts?v=r0sLDicvP58AIXN_mc3QdyVvVj5euZNzdsa2N1PKvb81 )的单个调用表示。
实际上,创建了一个与包名称相匹配的唯一路由(本例中为AllMyScripts)。查询字符串v有一个值令牌,它是用于缓存的唯一标识符。只要包不改变,ASP.NET应用程序就会使用此令牌请求AllMyScripts包。如果包中的任何文件发生变化,ASP.NET优化框架将生成一个新的令牌,确保对包的浏览器请求将得到最新的包。
至于包含多个目录的文件,最简单的方法是使用通配符模式匹配。Include方法中指定的虚拟路径和IncludeDirectory方法中的搜索模式可以在最后一个路径段中接受一个*通配符作为前缀或后缀。搜索字符串不区分大小写。IncludeDirectory方法可以选择搜索子目录。
https://stackoverflow.com/questions/19350761
复制相似问题