asp.net 4.5 bundlling:为主页和页面分离包是否正确?

时间:2015-07-09 15:04:36

标签: asp.net .net-4.5

这是一个非常简单的计划: 我们为Master Page内容编写样式和脚本,并在MasterPage.Master文件中包含引用,对于每个包装的asp.net Web Forms,我们将.css和.js文件分开,这些文件在自己的页面中引用。

在这种情况下捆绑文件的正确方法是什么?

  1. 我们将所有文件捆绑在一个虚拟路径中。所以我们在所有页面中都有不必要的捆绑文件。
  2. 我们为master创建了一个bundle,并为每个页面添加了新bundle。在我看来,这种方法类似于硬编码!

1 个答案:

答案 0 :(得分:0)

问题是如何组织CSS和JS文件,这取决于项目的域。例如,在我参与的报纸项目中,我们以这种方式进行捆绑:为文章页面创建了一组包,小部件页面都使用了相同的主页。

对于母版页,您注册了一个包含必要库的包,这些库必须在所有页面上使用,例如jQuery,bootstrap,项目中所有页面使用的一些常用javascript文件。

对于javascript,母版页将如下所示:

<script src='@Scripts.Url("~/bundles/js/common")' async> </script>

<asp:ContentPlaceHolder ID="BottomScripts" runat="server">
</asp:ContentPlaceHolder>

然后在使用母版页布局的页面上,用另一个扩展公共软件包的软件包填充内容占位符。

对于文章页面:

<asp:Content ID="Content1" ContentPlaceHolderID="BottomScripts" runat="server">
  <script src='@Scripts.Url("~/bundles/js/articlePage")' async> </script>
</asp:Content>

所以'~/bundles/js/articlePage'有一堆js文件,用于所有文章页面。文章页面将呈现常见和特定的javascript。

以类似的方式,'~/bundles/js/sectionPage'将有一组不同的脚本。

希望这有帮助