捆绑包未在 ASP.NET MVC 4 中加载

Posted

技术标签:

【中文标题】捆绑包未在 ASP.NET MVC 4 中加载【英文标题】:Bundles Not Loading in ASP.NET MVC 4 【发布时间】:2013-08-06 11:11:07 【问题描述】:

我在BundleConfig.cs中添加了bundle,如下图:

 bundles.Add(new ScriptBundle("~/bundles/angular").Include("~/Scripts/angular.min*"));

在 _Layout.cshtml 我有以下内容:

<body>
    @RenderBody()

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

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

    @RenderSection("scripts", required: false)
</body>
</html>

在网络流量中它不显示角度文件。

【问题讨论】:

【参考方案1】:

您输入的文件名不正确

~/Scripts/angular.min*

应该是

~/Scripts/angular.js

.min 会自动添加到生产模式\

Bundler not including .min files

【讨论】:

文件名为angular.min.js 下载压缩文件和非压缩文件并放入文件夹 这就是它的工作方式......或者只是将文件从 angular.min.js 重命名为 angular.js【参考方案2】:

ASP.NET MVC 中的捆绑非常聪明,因为它了解 *.min 以及何时使用或不使用它。因此,如果您在捆绑包中执行此操作:

bundles.Add(new ScriptBundle("~/bundles/angular").Include("~/Scripts/angular.js"));

在调试模式下,它将向"/scripts/angular.js" 发送请求,在发布模式下,它将向"/scripts/angular.min.js" 发送请求

为了从中受益,您应该将原始文件和缩小文件都放在您的脚本文件夹中。这样,当您调试时,您可以完全访问未压缩的源代码,并且在您的生产环境中,将加载优化的文件

【讨论】:

请记住,如果 .min 不存在于 unmified 文件中,内置的 mifier 将根据 unmified 文件为您完成。确实没有理由将缩小的文件放在未缩小的文件旁边,因为如果您将未缩小的文件更新到较新的版本但缩小的文件仍然是旧版本,有时这会引起很大的混乱。【参考方案3】:

就我而言,问题出在 Global.asax.cs

你需要有

BundleConfig.RegisterBundles(BundleTable.Bundles);

在您的 Application_Start() 中

【讨论】:

以上是关于捆绑包未在 ASP.NET MVC 4 中加载的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 asp.net core mvc 在引导模式中加载 AngularJS 代码

C#/IIS/MVC:静态内容未在不同环境中加载

Jquery 对话框未在 aspnet MVC 中加载

图像,CSS和JS未在MVC4应用程序中加载

NSUserDefaults 未在 IOS4 中加载

具有捆绑和缩小功能的 ASP.NET MVC 4 应用程序,为啥在调试模式下启用缩小?