【问题标题】:Trying to use EnableCdn with ScriptManager, not fully working尝试将 EnableCdn 与 ScriptManager 一起使用,但不能完全正常工作
【发布时间】:2010-11-10 06:15:57
【问题描述】:

您可以在此站点的源代码中看到一些 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,我应该如何强制它们?

【问题讨论】:

  • 您所指的问题/问题到底是什么?你能澄清一下吗?

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


【解决方案1】:

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

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

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

EDIT:OP 要求的附加信息

在 .NET 4.0 中,如果您想使用 Microsoft 提供的 CDN 脚本,则无需创建 WebResource 条目。 EnableCdn=True 应该可以解决问题,但请确保您使用的是支持 .NET 4.0(即工具包版本 40412)的 AJAX 工具包。访问 http://www.asp.net/ajaxlibrary/cdn.ashx 以获取更多信息和 Microsoft CDN 上的文件列表。

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

【讨论】:

  • 好的,但我实际上不确定包含哪些脚本。它们不是我代码的一部分,它们似乎是 MS Ajax 库?
  • 感谢您的更新,我会进一步研究这些。最后一项-您认为这可能是由于使用 ajaxToolKit:ToolKitScriptManager 而不是 asp:scriptmanager 而发生的吗?我不希望但是...
  • @boomhaur,ToolkitScriptManager 继承自 ScriptManager,所以这应该不是问题,但如前所述,为您的 .NET Fx 使用最新版本的工具包。
  • 是的,一切似乎都是 4.x... 不过我会先挖掘更多。看起来就是这么简单的事情。
猜你喜欢
  • 1970-01-01
  • 2013-10-08
  • 2020-09-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-10
  • 2014-07-01
  • 1970-01-01
  • 2016-07-19
相关资源
最近更新 更多