Bundle.config可以包含ScriptBundles吗?

时间:2015-07-12 03:26:09

标签: asp.net bundling-and-minification

我可以在Bundle.config文件中包含脚本,还是仅用于样式包?

<?xml version="1.0" encoding="utf-8" ?>
<bundles version="1.0">
  <styleBundle path="~/Content/css">
    ...
  </styleBundle>
  <scriptBundle path="~/Scripts">

    Is this possible?

  </scriptBundle>
</bundles>

任何人都可以提供指向Bundle.config参考的链接,以解释可能的标签和结构吗?我已经搜索过,但我能想到的只是BundleConfig.cs代码的捆绑方式而不是标记。我明白为什么 - 标记方式较旧,甚至可能已弃用。但我想学习标记方式,因为它常用于使用旧方法的遗留系统。

2 个答案:

答案 0 :(得分:3)

这称为“捆绑清单”。这是位于~/bundle.config的XML文件,通过BundleManifest.ReadBundleManifest();中的Application_Start加载。

有一个XSD in CodePlex, named BundleManifestSchema.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="BundleConfig" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:complexType name="include">
    <xs:attribute name="path" type="xs:string" use="required" />
  </xs:complexType>

  <xs:complexType name="styleBundle">
    <xs:sequence>
      <xs:element name="include" type="include" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="path" type="xs:string" use="required" />
    <xs:attribute name="cdnPath" type="xs:string" use="optional" />
  </xs:complexType>

  <xs:complexType name="scriptBundle">
    <xs:sequence>
      <xs:element name="include" type="include" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="path" type="xs:string" use="required" />
    <xs:attribute name="cdnPath" type="xs:string" use="optional" />
    <xs:attribute name="cdnFallbackExpression" type="xs:string" use="optional" />
  </xs:complexType>

  <xs:element name="bundles">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element type="styleBundle" name="styleBundle" />
        <xs:element type="scriptBundle" name="scriptBundle" />
      </xs:choice>
      <xs:attribute name="version" type="xs:string" />
    </xs:complexType>
  </xs:element>

</xs:schema>

是的,支持scriptBundle

答案 1 :(得分:2)

don't think it's possible我觉得你应该真的避免使用XML表示法。网上几乎没有关于该主题的资源。因此,将XML重写为C#可能会更快。但是,有一个NuGet包允许您通过XML配置它。该示例可在GitHubproject site上找到。