尽管我开发了一个asp.net Web表单项目,但是需要在每个页面中加载越来越多的css和javascript文件。此外,还有一些条件语句,如
<!--[if lte IE 9]>
所以问题是:这是一个很好的做法,将所有css和js脚本加载捆绑在一个asp.net用户控件中,然后只将该用户控件放在页眉中,而不是将所有这些行添加到每个页面/母版页?
感谢您的解决方案。
答案 0 :(得分:3)
这是用户控件的一种做法:将资源(js,css,images)与控件捆绑在一起,以使其自包含。
但是,由此产生的主要问题是资源无法在客户端缓存,因此每次请求页面时都会加载。此外,如果多个控件使用部分或全部资源,则会多次加载它们,并且代码重用会被取消。
您必须仔细权衡您的选择。如果您的应用过度依赖用户控件,那么您必须接受它。您可以识别公共资源并将其分开,并在需要的页面中加载它们。
我建议识别公共资源并将它们(使用工具或手动)捆绑到一个文件中并加载到单个页面(或适当的母版页)中并执行js minify。通常css进入头部,js进入页面末尾。
将单个用户控件中的所有内容捆绑在一起会产生可维护性,版本控制以及当然如上所述的缓存问题。
关于css,我建议您使用ASP.Net主题(样式表主题)。这样,所有样式都保留在一个位置,并提供简单的自定义选项。