捆绑启用优化

时间:2014-02-22 10:49:15

标签: asp.net asp.net-mvc bundle system.web.optimization

当我在我的mvc项目中为我的javascript文件启用我的BundleTable.EnableOptimizations时,它不会加载任何文件。我也没有收到任何错误。它根本不会加载我的任何文件。

这是我的包裹:

bundles.Add(new ScriptBundle("~/Content/javascripts").Include(
                    "~/Content/js/custom.js",
                    "~/Content/js/customizer.js",
                    "~/Content/js/main.js",
                    "~/Content/js/bootstrap.js",
                    "~/Content/js/jquery-ui-min.js",
                    "~/Content/js/bootstrap-switch-min.js"
                    ));

在我看来:

@Scripts.Render("~/Content/javascripts")

所有文件都存在,因为当我禁用优化时,它再次正常工作。

2 个答案:

答案 0 :(得分:0)

可能会将您的虚拟路径~/Content/javascripts误认为是真实路径。试试这个。

bundles.Add(new ScriptBundle("~/bundles/javascripts").Include(
                "~/Content/js/custom.js",
                "~/Content/js/customizer.js",
                "~/Content/js/main.js",
                "~/Content/js/bootstrap.js",
                "~/Content/js/jquery-ui-min.js",
                "~/Content/js/bootstrap-switch-min.js"
                ));

在你看来。

@Scripts.Render("~/bundles/javascripts")

答案 1 :(得分:0)

在MVC中启用bundle Optimization时,它使用虚拟文件夹〜/ Bundles / JQuery?v = xxxxx。在我的情况下它是访问被拒绝(使用F12工具),因为这个虚拟文件夹“捆绑”不允许无需登录访问。我将捆绑包路径添加到web配置中:

  <location path="bundles">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

希望这会有所帮助