尝试将EnableCdn与ScriptManager一起使用,而不是完全正常工作

时间:2010-11-10 06:15:57

标签: asp.net ajax asp.net-ajax scriptmanager

您可以在本网站的源代码中看到,某些asp.net脚本文件是从microsoft cdn提供的,而其他几个则不是:http://www.deadlywind.com

我目前正在根主文件中使用它:

<ajaxToolkit:ToolkitScriptManager runat="Server" EnableScriptGlobalization="true"
    EnableScriptLocalization="true" 
    EnableCdn="true" 
    LoadScriptsBeforeUI="false"
    ID="ScriptManager1" 
    CompositeScript-ScriptMode="Release" />

在网站上我在web.config中关闭了调试模式。

(补充说明)

似乎我的服务器仍在提供Microsoft Ajax javascript文件,而不是CDN,通过上述网站源代码中的scriptresource.axd引用。我的问题是,为什么这些不使用CDN,我应该如何强迫它们?

1 个答案:

答案 0 :(得分:2)

您需要使用WebResource属性配置CDN网址。例如:

<Assembly: System.Web.UI.WebResource("MyScript.js", 
    "application/x-javascript", 
    CdnPath := "http://myCdnServer/js/MyScript.js")>

可以有多个条目,可以放在任何代码文件中(因为这是一个程序集级别属性),但保留这些条目的建议位置是global.asax。

编辑:OP要求的其他信息

在.NET 4.0中,如果要使用Microsoft提供的CDN脚本,则无需创建WebResource条目。 EnableCdn=True应该可以做到这一点,但要确保您使用的是支持.NET 4.0的AJAX Toolkit(即Toolkit版本40412)。访问http://www.asp.net/ajaxlibrary/cdn.ashx以获取有关Microsoft CDN的更多信息和文件列表。

对于.NET 3.5,您已经创建了CDN条目 - 您可以从上面的链接和/或实际页面源获取脚本文件列表。 Folks还使用脚本组合,然后在自己的CDN上托管组合脚本以获得更好的性能。请检查此链接:http://www.hanselman.com/blog/ASPNETAjaxScriptCombiningAndMovingScriptResourceaxdsToStaticScripts.aspx