在部署时将本地(JQuery)链接转换为CDN链接

问题描述:

我目前正在开发一个ASP.NET Web应用程序,并且在旅途中即离线时进行大部分开发工作。我打算为JQuery和其他一些脚本资源使用Google/Microsoft/an-other CDN。在部署时将本地(JQuery)链接转换为CDN链接

我的问题是,是否有一种直接的方式来开发解决方案中的本地文件链接,但在部署/发布构建时指向CDN? 提前谢谢!

你可以写一个辅助函数:

public static string JQuerySource() 
{ 
    var config = WebConfigurationManager.OpenWebConfiguration("~"); 
    var compilation = config.GetSection("system.web/compilation") as CompilationSection; 
    if (compilation == null || compilation.Debug) 
    { 
     // Running in Debug mode 
     return "/scripts/jquery.js"; 
    } 
    // Running in Release mode 
    return "http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"; 
} 

那你会使用这样的:

<script type="text/javascript" src="<%=JQuerySource() %>"></script> 

您可以在部署...之前更改链接...?

更新:

一个简单的全部替换,如果你有一处处链接就足够了。

我知道这些可能是非常愚蠢和简单的解决方案,但在我看来,您的问题太简单了,无法进行抽象或编写额外的代码。

但是,如果你一定要,这是做的一种方式:

创建包含值的XML文件:

MyAppSettings.xml

<?xml version="1.0" encoding="utf-8" ?> 

<MyAppSettings> 
    <JqueryLink 
     value="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" 
     store1="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" 
     store2="../jquery.min.js" 
     > 
    </JqueryLink> 
</MyAppSettings> 

,并从价值XML文件:

public static string GetJqueryUrl() 
    { 
     XElement file = XElement.Load(HttpContext.Current.Server.MapPath("~/App_Data/MyAppSettings.xml")); 
     string jquerylink = file.Element("JqueryLink").Attribute("value"); 
     return jquerylink; 
    } 

您可以为以前的代码创建一个辅助函数并使用它遍布你的代码。

无论何时您想要在部署和脱机链接之间切换,只需更改xml文件中的“value”参数即可。

您可以将属性“store1”和“store2”保留在那里,这样我就不必记得当我切换它们时它们是什么。

+1

我是知道的。我希望将这种方法自动化,以便在每一次应用程序在下一个十年中部署时都不需要识别这些链接。我可以避免更好的手动任务。 – 2009-11-15 08:14:03

+0

更新了我的答案。 – Omar 2009-11-15 08:31:46