我在ASP.NET MVC 3 razor应用程序中使用最新版本的Telerik MVC扩展。我还下载了最新版本的jQuery。
我的jQuery文件位于不同的目录中,以及Visual Studio默认的内容。原因是因为我已经下载了最新版本的jQuery jquery-1.6.2.min.js。我将Telerik MVC内容和脚本目录放在不同的目录中。至于我所看到的Telerik脚本需要首先加载jQuery文件。我删除了默认使用ASP.NET MVC应用程序的内容和脚本目录。
Telerik脚本目录:
~/Assets/telerikaspnetmvc/2011.2.712/Scripts/
我的jQuery目录:
~/Assets/JavaScripts/jQuery/
我将ScriptRegistrar更改为以下内容:
@(Html.Telerik().ScriptRegistrar()
.DefaultGroup(group => group
.DefaultPath("~/Assets/telerikaspnetmvc/2011.2.712/Scripts/")
.Compress(true)
)
.Scripts(scripts => scripts
.AddGroup("JavaScriptAssetLocation", group => group
.DefaultPath("~/Assets/JavaScripts/jQuery/")
.Add("jquery-1.6.2.min.js")
.Compress(true)
)
)
.jQuery(false)
)
这给了我一个错误。我交换了2,所以它可以首先读取jQuery,但是它似乎仍然首先加载默认的Telerik JavaScript文件并导致错误。这是更改后的代码:
@(Html.Telerik().ScriptRegistrar()
.Scripts(scripts => scripts
.AddGroup("JavaScriptAssetLocation", group => group
.DefaultPath("~/Assets/JavaScripts/jQuery/")
.Add("jquery-1.6.2.min.js")
.Compress(true)
)
)
.DefaultGroup(group => group
.DefaultPath("~/Assets/telerikaspnetmvc/2011.2.712/Scripts/")
.Compress(true)
)
.jQuery(false)
)
我在这里做错了什么?请提供关于必须如何完成的代码示例。
另一个问题。我是否需要为每个组指定Compress(true)或者是否足够?而jQuery(false)需要指定在哪里?只有在DefaultGroup之后?或者在任何地方?
答案 0 :(得分:4)
我认为最简单的方法是:
@(Html.Telerik().ScriptRegistrar().DefaultGroup(group => group
.DefaultPath("~/Assets/telerikaspnetmvc/2011.2.712/Scripts/").Combined(true)
.Compress(true)).jQuery(false))
很抱歉,如果最终看起来有点压缩 - 代码片段样式拒绝应用任何其他设置。无论如何,一旦你完成了在你的页面的头部注册以下内容:
<script src="@Url.Content("~/Assets/JavaScripts/jQuery/jquery-1.6.2.min.js")" type="text/javascript"></script>
这将正确链接到您自己的jQuery版本,同时确保默认组的DefaultPath已更改。
至于在这里使用压缩,我认为它不会做太多。这实际上只适用于在具有几个脚本的组中使用.Combined(true)(例如Telerik组件的默认组)。如果你只是使用一个文件(jquery-1.6.2.min.js),那真的没有必要。因此,只要您想压缩组合组,请确保使用.Combined(true)(我必须在上面添加它)。这需要为每个小组添加。