pwd*_*dst 3 asp.net asp.net-mvc-4 bundling-and-minification
我在BundleConfig.cs中定义了以下ScriptBundle-
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/js/yepnope").Include(
"~/Scripts/yepnope.{version}.js"));
}
}
Run Code Online (Sandbox Code Playgroud)
它实际上并不是唯一的捆绑包,但这就是与问题相关的所有内容 - 其余的只是其他捆绑定义.
当处于web.config中设置的"调试"模式时
<compilation debug="true" targetFramework="4.5">
Run Code Online (Sandbox Code Playgroud)
脚本的完整版本和缩小版本都会发送到浏览器 -
<script src="/Scripts/yepnope.1.5.4-min.js"></script>
<script src="/Scripts/yepnope.1.5.4.js"></script>
Run Code Online (Sandbox Code Playgroud)
使用HTML帮助程序添加脚本,如此 -
@section HeadScripts
{
@Scripts.Render("~/js/yepnope")
}
Run Code Online (Sandbox Code Playgroud)
这是在Windows 7 Professional 64位上的Visual Studio 2012中运行的MVC4项目.
无论我做什么,我都无法使{version}通配符按照Microsoft文档中的描述行事-
注意:除非EnableOptimizations为true或Web.config文件中的编译元素中的debug属性设置为false,否则不会捆绑或缩小文件.此外,将不使用.min版本的文件, 将选择完整的调试版本.
对于ASP.NET MVC 4,这意味着使用调试配置,文件jquery-1.7.1.js将添加到包中.在发布配置中,将添加jquery-1.7.1.min.js.捆绑框架遵循几个常见的约定,例如:
- 当存在"FileX.min.js"和"FileX.js"时,选择".min"文件进行发布.
- 选择非".min"版本进行调试.
- 忽略仅由IntelliSense使用的"-vsdoc"文件(例如jquery-1.7.1-vsdoc.js).
上面显示的{version}通配符匹配用于在Scripts文件夹中使用适当版本的jQuery自动创建jQuery包.在此示例中,使用通配符可提供以下好处:
- 允许您使用NuGet更新到更新的jQuery版本,而无需在视图页面中更改前面的捆绑代码或jQuery引用.
- 自动选择调试配置的完整版本和发布版本的".min"版本.
如果我添加"EnableOptimizations",它似乎表现得如预期的那样.
有没有人注意到这个或找到了解决方案?
MVC4只知道如何处理.min.js文件.它无法识别-min.js(带破折号).
我通常做的方式,具有不易成功,是摆脱任何.min.js或-min.js通过同时提供一个库提供的文件.js以及一个.min.js或-min.js.默认情况下,MVC会自动运行如下任何捆绑.js在部署您的网站文件,因此没有必要使用提供.min.js或-min.js文件.
这不一定是您特定问题的直接答案 - 这是完全规避问题的一种方法.
| 归档时间: |
|
| 查看次数: |
3098 次 |
| 最近记录: |