ASP.NET MVC 4中捆绑包无法加载

8
我已经按照以下所示的方式在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>

在网络流量中,Angular文件未显示。
3个回答

20

ASP.NET MVC 中的捆绑功能相当聪明,它能够理解*.min以及何时使用或不使用它。因此,如果您在捆绑时这样做:

bundles.Add(new ScriptBundle("~/bundles/angular").Include("~/Scripts/angular.js"));
在调试模式下,它会发送一个对 "/scripts/angular.js" 的请求,在发布模式下,它会发送一个对 "/scripts/angular.min.js" 的请求。
为了从中受益,您应该将原始文件和压缩文件都放在脚本文件夹中。这样,当您进行调试时,您可以完全访问未压缩的源代码,并且在生产环境中,优化过的文件将被加载。

只需记住,如果未经压缩的文件没有.min,则内置的压缩程序会根据未经压缩的文件对其进行压缩。实际上,如果将未经压缩的文件更新到较新版本,但压缩文件仍然是旧版本,则将压缩文件保存在未经压缩的文件旁可能会导致很大的困惑,因此没有必要这样做。 - Piotr Kula

0

您输入了错误的文件名

~/Scripts/angular.min*

应该是这样的

~/Scripts/angular.js

在生产模式下,.min 会自动添加到

标签中。

Bundler 不包括 .min 文件


文件名是angular.min.js。 - john doe
下载压缩和非压缩文件,并将它们放入文件夹中。 - Parv Sharma
2
这就是它的工作方式...或者只需将文件从angular.min.js重命名为angular.js。 - Parv Sharma

0
在我的情况下,问题出在 Global.asax.cs 文件上。
你需要拥有

BundleConfig.RegisterBundles(BundleTable.Bundles);

在你的 Application_Start() 中


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接