【问题标题】:Convert local (JQuery) link to CDN link at deploy time在部署时将本地(JQuery)链接转换为 CDN 链接
【发布时间】:2009-11-15 17:22:20
【问题描述】:

我目前正在开发一个 ASP.NET Web 应用程序,并且我的大部分开发工作都是在路上进行的,即离线。我计划使用 Google/Microsoft/an-other CDN for JQuery 和其他一些脚本资源。

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

【问题讨论】:

    标签: asp.net jquery cdn


    【解决方案1】:

    你可以写一个辅助函数:

    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>
    

    【讨论】:

      【解决方案2】:

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

      更新:

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

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

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

      创建一个包含值的 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 文件中的“值”参数即可。

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

      【讨论】:

      • 我知道这一点。我想使该方法自动化,这样就不必在未来十年内每次部署应用程序时都识别包含此类链接的任何地方。我可以避免的手动任务越多越好。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多