ASP.NET Bundle AngularJS

时间:2017-08-27 15:39:23

标签: asp.net angularjs bundling-and-minification

我有一个带有following结构的Angular客户端(普通html / js / css)的空mvc模板。
为了实现捆绑和缩小,我从this文章中完成了步骤。 我的RegisterBundles方法具有以下规则:

public static void RegisterBundles(BundleCollection bundles)
        {
            //bundles.Add(new ScriptBundle("~/bundles/js").IncludeDirectory(
            //    "/App/","*.js", true));
            bundles.Add(new StyleBundle("~/bundles/styles.css").Include(
                "/Content/*.css"));

            bundles.Add(new ScriptBundle("~/bundles/app.js").Include(
                "~/App/app.modules.js")
                .IncludeDirectory("~/App/Components/", "*Module.js", true)
                .IncludeDirectory("~/App/Components/", "*Service.js", true)
                .IncludeDirectory("~/App/Components/", "*Controller.js", true));
        }

要链接这些捆绑包,我将其放入 Index.html

<link href="/bundles/styles.css" rel="stylesheet"/>
<script src="/bundles/app.js" type="text/javascript" language="text/javascript"></script>

更新

我更新了 web.config 文件

中的重写规则
    <system.webServer>
        <httpErrors errorMode="Detailed" />
        <asp scriptErrorSentToBrowser="true"/>
        <rewrite>
          <rules>
            <rule name="AngularJS Routes" stopProcessing="true">
              <match url=".*" />
              <conditions logicalGrouping="MatchAll">
                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
                <add input="{REQUEST_URI}" negate="true" pattern="^/bundles/styles$" ignoreCase="true"/>
                <add input="{REQUEST_URI}" negate="true" pattern="^/bundles/app$" ignoreCase="true"/>
              </conditions>
              <action type="Rewrite" url="/" />
            </rule>
          </rules>
        </rewrite>
      </system.webServer>

我仍然没有收到捆绑包。我找不到404而且this

1 个答案:

答案 0 :(得分:0)

似乎我在IIS中没有“Bundle模块”(IIS =&gt;您的网站=&gt;模块),而且还有角度项目中的WebGrease包的问题。所以解决方案是:
1.在包管理器控制台中执行:Update-package webgrease
2.在web.config中,请确保有以下部分:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="BundleModule"/>
      <add name="BundleModule" type="System.Web.Optimization.BundleModule"/>
    </modules>
</system.webServer>