离线使用AJAX:替换本地服务器自动生成的CDN脚本为本地文件
替换ASP.NET自动生成的CDN脚本为本地文件
这些自动注入的脚本是ASP.NET WebForms框架默认从CDN加载的Microsoft Ajax相关资源,要替换为本地文件,可通过以下两种常用方法实现:
方法一:全局配置(所有页面生效,推荐)
在项目的Global.asax文件的Application_Start方法中,通过ScriptResourceMapping注册本地脚本的映射,覆盖默认的CDN地址:
void Application_Start(object sender, EventArgs e) { // 注册MicrosoftAjax.js本地映射 ScriptManager.ScriptResourceMapping.AddDefinition("MicrosoftAjax.js", new ScriptResourceDefinition { Path = "~/Scripts/Ajax/4.5.1/MicrosoftAjax.js", DebugPath = "~/Scripts/Ajax/4.5.1/MicrosoftAjax.debug.js" // 若有调试版文件可添加 }); // 注册MicrosoftAjaxWebForms.js本地映射 ScriptManager.ScriptResourceMapping.AddDefinition("MicrosoftAjaxWebForms.js", new ScriptResourceDefinition { Path = "~/Scripts/Ajax/4.5.1/MicrosoftAjaxWebForms.js", DebugPath = "~/Scripts/Ajax/4.5.1/MicrosoftAjaxWebForms.debug.js" }); // 注册webForms.js本地映射 ScriptManager.ScriptResourceMapping.AddDefinition("webForms.js", new ScriptResourceDefinition { Path = "~/Scripts/Ajax/4.6/1/webForms.js", DebugPath = "~/Scripts/Ajax/4.6/1/webForms.debug.js" }); }
注意:提前将本地的脚本文件放到对应路径(比如~/Scripts/Ajax/版本号/),确保路径与代码中的Path一致。
方法二:页面级配置(单个页面生效)
在需要替换脚本的页面中,找到ScriptManager控件(若没有则添加),通过<Scripts>节点指定本地文件路径,覆盖默认CDN引用:
<asp:ScriptManager ID="ScriptManager1" runat="server"> <Scripts> <asp:ScriptReference Name="MicrosoftAjax.js" Path="~/Scripts/Ajax/4.5.1/MicrosoftAjax.js" /> <asp:ScriptReference Name="MicrosoftAjaxWebForms.js" Path="~/Scripts/Ajax/4.5.1/MicrosoftAjaxWebForms.js" /> <asp:ScriptReference Name="webForms.js" Path="~/Scripts/Ajax/4.6/1/webForms.js" /> </Scripts> </asp:ScriptManager>
如果项目使用的是ToolkitScriptManager(AjaxControlToolkit相关),配置方式完全相同,只需在ToolkitScriptManager内添加上述<Scripts>节点即可。
最后确认本地脚本文件的IIS访问权限正常,路径无拼写错误,部署后框架就会自动加载本地文件而非CDN资源。
内容的提问来源于stack exchange,提问作者João Pedro Sousa
相关产品推荐
相关产品推荐

