asp.net 4.5捆绑:母版页和页面的捆绑包是分开的吗?

asp.net 4.5捆绑:母版页和页面的捆绑包是分开的吗?,asp.net,.net-4.5,Asp.net,.net 4.5,这是一个非常简单的计划: 我们为母版页内容编写样式和脚本,并在母版页.Master文件中包含引用,对于每个包装好的asp.net Web表单,我们将在自己的页面中引用的.css和.js文件分开 在这种情况下,捆绑文件的正确方法是什么 我们将所有文件捆绑在一个虚拟路径中。因此,我们在所有页面中都有不必要的捆绑文件 我们为master创建一个bundle,并为每个页面添加新bundle。在我看来,这种方法类似于硬编码 问题是您希望如何对CSS和JS文件进行分组,这取决于项目的域。例如,在我参与的一个

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

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

  • 我们将所有文件捆绑在一个虚拟路径中。因此,我们在所有页面中都有不必要的捆绑文件
  • 我们为master创建一个bundle,并为每个页面添加新bundle。在我看来,这种方法类似于硬编码
    问题是您希望如何对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”
    将有一组不同的脚本


    希望这有助于

    使用“/”对虚拟子路径进行分类和创建是一个有趣的想法。这种方法似乎是结构化的。现在,我考虑命名规则!您是否同意:页面名称=虚拟子路径名称?这取决于您拥有的网站总页面数。正如我提到的,一些页面可能需要分组,因为它们使用相同的js-s。例如,您有几个类似的页面:文章、幻灯片、测验,它们都使用基本相同的js,因此您可以为它们使用相同的虚拟路径,如“~/bundles/js/articles”。