【问题标题】:Asp.net Bundle not render files .minAsp.net Bundle 不呈现文件 .min
【发布时间】:2013-04-30 21:14:34
【问题描述】:

我已阅读并完成thisthisthis 帖子中的步骤!

仍然无法使用 Asp.net Bundles!

Global.asax.cs

BundleConfig.RegisterBundles(BundleTable.Bundles, Server);

和...

public static void RegisterBundles(BundleCollection bundles, HttpServerUtility server)
{
    bundles.IgnoreList.Clear();
    AddDefaultIgnorePatterns(bundles.IgnoreList);
    ...

    var scriptBundle = new ScriptBundle("~/Scripts")
        .IncludeDirectory("~/Scripts", "*.js");
    bundles.Add(scriptBundle); 

忽略列表

private static void AddDefaultIgnorePatterns(IgnoreList ignoreList)
{
    ignoreList.Ignore("*.intellisense.js", OptimizationMode.Always);
    ignoreList.Ignore("*-vsdoc.js", OptimizationMode.Always);
    ignoreList.Ignore("*.debug.js", OptimizationMode.Always);

    ignoreList.Ignore("underscore.js", OptimizationMode.Always);
    ignoreList.Ignore("moment.js", OptimizationMode.Always);
    ignoreList.Ignore("jquery-{version}.js", OptimizationMode.Always);
}

不过,jquery.pnotify.min.js 之类的文件不会被渲染!

WebGrease 1.3.0 Microsoft.AspNet.Web.Optimi... 1.1.0-Beta1

【问题讨论】:

  • 你试过了吗.IncludeDirectory("~/Scripts/jquery.pnotify.{version}.js");
  • 我添加了这个:.Include("~/Scripts/jquery.pnotify.min.js"),它成功了!但是我不能对这个文件夹中所有带有.min 扩展名的脚本执行此操作。 IncludeDirectory 的想法正是这样,获取所有脚本并创建捆绑包
  • 我有同样的问题,我清除了 IgnoreList 并且 min.js 文件仍然被忽略了!这让我发疯,我找不到解决方案。在没有任何通配符的情况下专门包含每个文件会破坏捆绑包的全部目的。结果我使用普通的

标签: asp.net-mvc-4 .net-4.5 asp.net-optimization webgrease


【解决方案1】:

好的!我想到了!在BundleTable.Bundles 成员中环顾一圈后,发现DirectoryFilter 显然你也必须Clear()

所以bundles.IgnoreList.Clear(); 是不够的(它曾经是)现在你还必须做bundles.DirectoryFilter.Clear();

它对我有用,我希望有帮助。

【讨论】:

  • 这是我需要的答案。所有其他人都没有工作。谢谢!
【解决方案2】:

我会冒险猜测并说您正在Debug 模式而不是Release 模式下运行您的应用程序。在Debug 模式下,.min 文件被忽略,它呈现未缩小的脚本以帮助简化调试。

【讨论】:

  • 但我正在清理 Ignorelist。还是有这种行为? bundles.IgnoreList.Clear();
【解决方案3】:

默认情况下,打包程序会忽略扩展名为 .min 的文件。最小文件是预先缩小的,最好让优化器自己缩小文件。您应该将 jquery.pnotify.js 放在该目录中,然后它就可以正常工作,在调试时提供非缩小、非捆绑版本,并在发布时提供缩小和捆绑版本。

但是,您可以通过 bundles.IgnoreList.Clear();bundles.DirectoryFilter.Clear(); 清除默认的 IgnoreList 和 DirectoryFiler 来覆盖默认值(尽管我建议您不要这样做)

【讨论】:

    【解决方案4】:

    在 Application_Start 中:

    BundleConfig.RegisterBundles(BundleTable.Bundles);
    BundleTable.EnableOptimizations = true;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-10
      • 2014-01-19
      相关资源
      最近更新 更多