2017-06-03 31 views
1

我對將@ Scripts.Render和@ Styles.Render放在哪裏感到很困惑。理想情況下,我會將它們全部放在head部分中,但意外的是,例如,@ Scripts.Render(「〜/ bundles/bootstrap」)根本不起作用,除非我將它放在body節中,在@RenderBody()之後。@ Scripts.Render和@ Styles.Render的位置

@ Mvc.RazorTools.BundleManager.Styles.Render()和@RenderSection(「scripts」,required:false)的位置相同。

關於他們的最後一句話將非常感激。

p.s.這個問題還有另外一個類似的答案,但唯一的相似之處在於標題中的問題是缺少文件,而不是放置。這個問題也不涉及腳本和樣式。完成的緣故

添加包:

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")); 
+1

可能重複[不確定在哪裏放置Scripts.Render for JQuery](https://stackoverflow.com/questions/29061873/not-sure-where-to-place-scripts-render-for-jquery) – Sankar

回答

1

我會建議你把你的@你的頁面的頭部Styles.Render。這樣做會讓瀏覽器渲染頁面的速度更快,因爲它在呈現頁面之前會等待所有CSS文件加載。

我還建議您在頁面主體的結束標記之前加上@ Scripts.Render。這樣做可以讓瀏覽器以完美的方式渲染用戶界面。請注意,無論何時腳本執行(Web工作人員和Ajax調用都被豁免),UI線程都會停止(這會在某些情況下導致長時間運行的腳本)。

增加:

所有的
<head> 
Render styles here 
</head> 
<body> 

    Render jQuery Scripts 
    Render Bootstrap Scripts 
</body> 
+0

這就解釋了爲什麼@ Scripts.Render(「〜/ bundles/bootstrap」)在我的頭部部分中無法正常工作。謝謝。 – Luke

+0

不客氣@Luke –

+0

經過深入檢查後發現@ Scripts.Render(「〜/ bundles/bootstrap」)必須在我的身體部分工作(根據您的答案),但ScriptBundle(「〜/ bundles/bundlejquery「)將不起作用,除非我把它放在頭部分。所以我一直對關於腳本放置的清晰規則感到困惑。 – Luke

0

首先,你可以把@ Styles.Render和@ Scripts.Render無論你把腳本和風格標籤,所以它是完全好就擺在頭。可能還有其他問題,如果你提供更多的信息,它可能會有所幫助。 您通常會在主頁面內放置@RenderSection(「scripts」,必填:false)(如默認的_layout文件)。然後,你就可以把

@section script{ 
} 

您的網頁,然後你把這個標籤中的內容將與@RenderSection被替換的(「腳本」,必需:false)母版頁上。

注意:您不能將@部分放在部分頁面上。