Asp.net ScriptBundle在调试模式下添加完整文件和缩小文件
我在BundleConfig.cs中定义了以下脚本包-Asp.net ScriptBundle在调试模式下添加完整文件和缩小文件,asp.net,asp.net-mvc-4,bundling-and-minification,Asp.net,Asp.net Mvc 4,Bundling And Minification,我在BundleConfig.cs中定义了以下脚本包- public class BundleConfig { public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/js/yepnope").Include( "~/Scripts/yepnope.{version
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/js/yepnope").Include(
"~/Scripts/yepnope.{version}.js"));
}
}
事实上,它并不是唯一的捆绑包,但所有这些都与问题相关——其余的只是其他捆绑包定义
当处于web.config中设置的“调试”模式时-
<compilation debug="true" targetFramework="4.5">
这是一个MVC4项目,在Windows 7 Professional 64位上的Visual Studio 2012中运行
无论我做什么,我都无法使{version}通配符按照-
注意:除非EnableOptimizations为true或
Web.config文件中的编译元素设置为false,files
不会被捆绑或缩小。此外,的.min版本
将不使用文件,将选择完整调试版本
对于ASP.NET MVC 4,这意味着在调试配置中
jquery-1.7.1.js将被添加到包中。释放
配置,将添加jquery-1.7.1.min.js。捆绑
框架遵循以下几种常见约定:
- 在“FileX.min.js”和“FileX.js”时选择要发布的“.min”文件 存在李>
- 选择非“.min”版本进行调试李>
- 忽略“-vsdoc” 文件(如jquery-1.7.1-vsdoc.js),仅由 智能感知李>
- 允许您使用NuGet更新到较新的jQuery版本,而无需 在视图中更改前面的绑定代码或jQuery引用 页数李>
- 自动选择调试配置的完整版本 以及发布版本的“.min”版本。
其他人是否注意到了这一点或找到了解决方案?MVC4只知道如何处理
.min.js
文件。它无法识别-min.js
(带破折号)
我通常这样做的方法很容易成功,就是去掉由库提供的.js
或-min.js
文件,这些库既提供.js
,也提供.min.js
或-min.js
。默认情况下,MVC将在您部署网站时自动缩小任何捆绑的.js
文件,因此无需使用提供的.min.js
或-min.js
文件
这不一定是对您的特定问题的直接回答-这是一种完全回避问题的方法。在不使用debug属性的情况下发布也会导致它从完整的.js文件生成一个单一的缩小版本-缩小的变量名与提供的缩小版本中的变量名不同。您可以可能意味着该文件名为
.min.js
,而不是-min.js
@MikeSmithDev,它可能名为-min.js
。在MVC4中使用NuGet软件包是一个常见的问题:您抓取一个软件包,它附带一个.js
和一个-min.js
或.min.js
。如果你得到一个.min.js
文件,一切都应该正常。但是如果你得到一个-min.js
文件,它只会引起问题。最好完全去掉它,就像我的回答一样。@Timothyshiels删除它是可行的,但是遵循文档并使用“.min.js”文件也是可行的,在快速测试中,使用“.min”优化的文件比不存在时更小,因此,我主张重命名该文件并按设计使用优化。@MikeSmithDev如果默认的迷你器比用于创建打包的min.js
的其他迷你器效率低,您可以将迷你器切换为该迷你器。。。
<script src="/Scripts/yepnope.1.5.4-min.js"></script>
<script src="/Scripts/yepnope.1.5.4.js"></script>
@section HeadScripts
{
@Scripts.Render("~/js/yepnope")
}