【问题标题】:Where to place @Scripts.Render and @Styles.Render在哪里放置 @Scripts.Render 和 @Styles.Render
【发布时间】:2017-11-04 15:45:37
【问题描述】:

我很困惑@Scripts.Render 和@Styles.Render 的放置位置。理想情况下,我会将它们全部放在 head 部分中,但出乎意料的是,例如,@Scripts.Render("~/bundles/bootstrap") 根本不起作用,除非我将它放在 @RenderBody() 之后的 body 部分中。

@Mvc.RazorTools.BundleManager.Styles.Render() 和 @RenderSection("scripts", required: false) 的放置位置同样令人困惑。

非常感谢他们的最后一句话。

附言这个问题还有另一个类似的答案,但唯一的相似之处在于标题,因为问题在于丢失的文件,而不是位置。此外,该问题并未涉及脚本和样式。

为了完成而添加捆绑包:

bundles.Add(new ScriptBundle("~/bundles/bundlejquery").Include(
                    "~/Scripts/jquery-1.12.4.js",
                   "~/Scripts/jquery-ui-1.12.1.js",
                   "~/Scripts/jquery.validate.min.js",
                   "~/Scripts/jquery.validate.unobtrusive.min.js"));

bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                  "~/Scripts/bootstrap.js",
                  "~/Scripts/respond.js"));

【问题讨论】:

标签: jquery css asp.net-mvc twitter-bootstrap


【解决方案1】:

首先,您可以将@Styles.Render 和@Scripts.Render 放在您放置脚本和样式标签的任何位置,所以放在标题中是完全可以的。可能还有其他问题,如果您提供更多信息,它可能会有所帮助。 您通常将 @RenderSection("scripts", required: false) 放在母版页中(就像默认的 _layout 文件一样)。然后就可以放

@section script{
}

在您的页面上,您放置在此标记中的内容将在母版页上替换为 @RenderSection("scripts", required: false)。

注意:您不能将@section 放在部分页面上。

【讨论】:

    【解决方案2】:

    我建议您将 @Styles.Render 放在页面的头部。这样做会让浏览器更快地呈现页面,因为它会在呈现页面之前等待所有 CSS 文件加载。

    我还建议您将 @Scripts.Render 放在页面正文的结束标记之前。这样做将允许浏览器以完美的方式呈现 UI。请注意,无论何时执行脚本(Web 工作者和 Ajax 调用除外),UI 线程都会停止(这会在某些情况下导致脚本长时间运行)。

    加法:

    <head>
     Render styles here
    </head>
    <body>
    
        Render jQuery Scripts
        Render Bootstrap Scripts
    </body>
    

    【讨论】:

    • 这就解释了为什么 @Scripts.Render("~/bundles/bootstrap") 在我的头部无法正常工作。谢谢。
    • 经过深入检查后发现 @Scripts.Render("~/bundles/bootstrap") 必须进入我的正文部分才能工作(根据您的回答),但是 ScriptBundle("~/ bundles/bundlejquery") 除非我把它放在头部,否则它不会起作用。所以我一直对关于脚本放置的清晰规则感到困惑。
    • @Luke,这是因为 bootstrap 依赖于 jQuery。这意味着您必须将我们的 jQuery 脚本放在引导脚本之前。它们可以放在页面底部。
    猜你喜欢
    • 2015-05-17
    • 1970-01-01
    • 2021-11-24
    • 2011-06-29
    • 2018-03-27
    • 2011-02-15
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多