【问题标题】:Custom bundle in MVC 4 is not rendered未呈现 MVC 4 中的自定义包
【发布时间】:2013-12-22 05:50:13
【问题描述】:

我正在处理ASP.NET MVC 4 应用程序。我想制作我自己的包含 .js 文件的包,我将使用这些文件进行验证,但由于某种原因它不起作用。顺便提一下 - 如果我在给定视图中渲染所有脚本,一切都可以正常工作,例如:

@Scripts.Render("~/Scripts/jquery-1.7.1.min.js")
@Scriptes.Render("~/Scripts/jquery.validate.min.js")
//..few more files

但我不想每次都包含所有这些脚本,所以我决定制作自己的捆绑包。我做的步骤是:

  • BundleConfig.cs 我有这个:

public static void RegisterBundles(BundleCollection bundles)

{

//默认捆绑包

bundles.Add(new ScriptBundle("~/bundles/customval").Include(

    "~/Scripts/jquery-1.7.1.min.js",
    "~/Scripts/jquery.validate.min.js",
    "~/Scripts/jquery.unobtrusive-ajax.min.js",
    "~/Scripts/jquery.validate.unobtrusive.min.js"));

}

然后我检查我的Global.asax 我有这个:

BundleConfig.RegisterBundles(BundleTable.Bundles);

然后在我看来我只是尝试:

@Scripts.Render("~/bundles/customval")

FireBug 表示此页面没有加载任何 JavaScript。

我使用自定义_Layout 页面,我想知道是否必须在其中添加一些内容。我补充说:

@RenderSection("scripts", required: false)

在我的_Layout 中,但它似乎没有解决问题。那么我缺少什么来使我的捆绑包正常工作?

【问题讨论】:

    标签: .net asp.net-mvc-4 bundle


    【解决方案1】:

    您可能正在DEBUG 模式下运行。在此模式下,.min.js 文件将被忽略(因为它们仅用于生产用途)。

    最好包含非缩小版(有时带有.debug.js 的后缀)版本,然后在RELEASE 模式下,优化框架将自动为您捆绑和缩小它(除非您另有指定)。

    【讨论】:

      【解决方案2】:

      我不得不补充:

      BundleTable.EnableOptimizations = false;
      

      在 RegisterBundles 方法的末尾。在我年老的时候 :) 我不记得到底是什么问题,但它与 .min 文件和调试有关,如果我没记错的话。

      @RenderSection("scripts", required: false) 允许您在每个视图中定义一个特殊的脚本部分(在您的情况下是可选的),并将其呈现在使用 _layout 的每个页面的相同位置文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-20
        • 2011-11-24
        • 2013-04-23
        • 2021-12-02
        • 2011-03-08
        • 2014-03-02
        • 1970-01-01
        • 2019-06-18
        相关资源
        最近更新 更多