我描述了我的 ASP.NET MVC 应用程序,我看到一个奇怪的函数调用。
你可以在图像上看到它
总是在mvc渲染布局时,我们调用system.web.optimization.scripts.render
来调用JsMinify.Process
和Minifier.MinifyJavaScript
,但我认为缩小应该是启动应用程序的一次。
我是对的吗?
也许我必须设置一些优化设置吗?
条件:
答案 0 :(得分:2)
很棒的问题!
直观地说,你是对的,资产的缩小应该在应用 Startup 上进行。您假设资产的交付方式与所有浏览器相同。但微软认为,JS和CSS的大部分都是浏览器特定的。
如果您在 ASP.NET 4.5 Bundling and Minification 上查看asp.net网站的参考资料,他们会明确说明:
ASP.NET 4.5中的捆绑和缩小是在运行时执行的 该进程可以识别用户代理(例如IE,Mozilla, 等),从而通过定位用户浏览器来改进压缩 (例如,删除Mozilla特有的东西 请求来自IE)。
缓存怎么样?
捆绑并不像你想象的那样愚蠢。如果您查找 MVC 4 Bundling and Minification 参考,他们会指出:
捆绑缓存
Bundles将捆绑包设置为从捆绑包开始的一年 创建。如果您导航到以前查看过的页面,Fiddler会显示IE 没有对bundle发出条件请求,也就是说 没有来自IE的HTTP GET请求,而没有HTTP 304响应 来自服务器。
这比你需要的信息要多得多,但是消息是,JSMinify检查了相关的缓存缩小资产。
当您进一步考虑我们已经使用我们资产的缩小版本(例如jquery.min.js,jquery-ui.min.js)时,您可以理解.Net缩小是一个补充过程。
为什么必须进行所有类型的缩小