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

时间:2009-11-15 07:58:10

标签: asp.net jquery cdn

我目前正在开发一个ASP.NET Web应用程序,并在路上进行大部分开发,即离线。我计划使用谷歌/微软/其他CDN用于JQuery和其他一些脚本资源。

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

2 个答案:

答案 0 :(得分:2)

您可以编写辅助函数:

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>

答案 1 :(得分:0)

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

更新

如果你到处都有链接,那么简单的全部替换就足够了。

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

但是,如果必须,这是一种方法:

创建一个包含值的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”保留在那里,这样我就不必记住切换它们时的属性。