Asp.net Bundle不呈现文件.min

时间:2013-05-07 02:13:40

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

我已阅读并完成了thisthisthis发布的步骤!

仍然无法使用Asp.net套装!

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

4 个答案:

答案 0 :(得分:4)

OK!我想到了!在BundleTable.Bundles成员中查看了一下之后发现DirectoryFilter显然你还需要Clear()

所以bundles.IgnoreList.Clear();是不够的(以前是)现在你也必须做bundles.DirectoryFilter.Clear();

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

然而,您可以通过bundles.IgnoreList.Clear();bundles.DirectoryFilter.Clear();

清除默认的IgnoreList和DirectoryFiler来覆盖默认值(尽管我建议您不要)

答案 3 :(得分:0)

在Application_Start中:

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