我在网站上使用jquery.curvycorners和typeface,我希望将这些脚本加载到页面的头部(为了让页面从头开始正确呈现)。
现在我正在介绍一些Telerik组件,而ScriptRegistrar让我很头疼。
似乎它不想在两个地方渲染,即使它是两个独立的组。
缩写示例:
<% Html.Telerik().ScriptRegistrar().Scripts(s => s
.AddGroup("Group1", group => group
// jQuery
.Add("jquery-1.4.4.min.js")
.Add("jquery-ui-1.8.9.custom.min.js")
// Rounded corners
.Add("jquery.curvycorners.source.js")
.Combined(false)
.Compress(false)
))
.Render();
%>
</head>
<body id="body">
<div>
yadda yadda...
</div>
<% Html.Telerik().ScriptRegistrar()
.DefaultGroup(group => group
.Compress(false)
.Combined(false))
.jQuery(false)
.Render(); %>
</body>
</html>
我是否应该手动选择那些我真正需要从开始加载脚本标签的组件,或者有没有办法在两个地方使用scriptregistrar渲染?
答案 0 :(得分:4)
您不应该在两个地方加载ScriptRegistrar。此外,脚本注册器应始终位于页面底部。如果你绝对需要在ScriptRegistrar之前有javascript引用,你可以执行以下操作:
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
@Html.Telerik().StyleSheetRegistrar().DefaultGroup(g => g.Add("telerik.common.css").Add("telerik.windows7.css"))
</head>
<body>
<div class="page">
...
</div>
@Html.Telerik().ScriptRegistrar().jQuery(false);
</body>
</html>
否则我建议将底部的两个组合在一起,禁用内置的jQuery,并像上面一样在组中添加自己的jQuery。
答案 1 :(得分:0)
您只能在页面上调用一次Render()。 Try removing the first one.