在Master页面中结合CSS和JS并使用SquishIt查看页面

Chr*_*sal 4 javascript css asp.net squishit

如何实现SquishIt在View Pages中捆绑Css/Js并在Master页面中渲染它?我以为我可以在Render部分上方使用ContentPlaceHolder,但似乎有一些奇怪的行为,它有时会添加3个文件(视图页面中有1个文件,母版页中有2个文件)但是其他时候会忽略从View中添加的文件页.

的Index.aspx

<asp:Content ContentPlaceHolderID="CssFiles" runat="server">
    <% CssHelper.Add("home.css"); %>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

的Site.Master

<asp:ContentPlaceHolder ID="CssFiles" runat="server" />
<% CssHelper.Add("reset.css"); %>
<% CssHelper.Add("master.css"); %>
<%=CssHelper.Render() %>
Run Code Online (Sandbox Code Playgroud)

我目前的解决方案是围绕SquishIt的静态Bundle类的静态包装器,它将BundleBuilder保存在HttpContext.Current.Items中.

我很好奇这是否已成功完成以及如何做到这一点.

小智 12

我想你可能会忽略捆绑css和javascript的重点.如果您要在每个视图上添加css或js文件,并结合母版页文件,那么您每次都要创建大量的小包,用户必须下载这些小包.

如果你没有Javascript和Css 的(我的意思是TON),那么你最好将所有的css和javascript捆绑到同一个包中.这样,用户第一次获取下载它的命中,然后它被缓存.

如果你有一个css的css和javascript,那么使用命名的bundle功能并为你站点的不同部分创建bundle.但重点是您希望最小化您创建的捆绑包的数量,以便用户不必继续下载文件.

唯一的例外是移动浏览器,它们具有一定的大小缓存限制.

  • 有很多JS和CSS,似乎"命名捆绑"是我们想要的方式.该网站的不同区域共享许多相同的CSS(帐户,结帐等).这些不需要全部捆绑在一起,但可以在更多的模块化捆绑中工作.谢谢! (2认同)