Преобразовать локальную (JQuery) ссылку в ссылку CDN во время развертывания - PullRequest
2 голосов
/ 15 ноября 2009

В настоящее время я занимаюсь разработкой веб-приложения на ASP.NET и выполняю большую часть своей разработки в дороге, т.е. в автономном режиме. Я планирую использовать Google / Microsoft / другой CDN для JQuery и пару других ресурсов сценариев.

Мой вопрос заключается в том, существует ли прямой способ разработки со ссылкой на локальный файл в решении, но указывать на CDN при развертывании / выпуске сборки? Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 15 ноября 2009

Вы можете написать вспомогательную функцию:

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>
0 голосов
/ 15 ноября 2009

Вы можете просто изменить ссылку перед развертыванием ...?

Обновление:

Достаточно простого Заменить все, если у вас есть ссылка везде.

Я знаю, что это могут быть действительно глупые и простые решения, но мне кажется, что ваша проблема слишком проста, чтобы требовать абстракции или дополнительного написания кода.

Однако, если вам нужно, это один из способов сделать это:

Создайте файл 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;
  }

Вы можете создать вспомогательную функцию для предыдущего кода и использовать ее по всему коду.

Всякий раз, когда вы хотите переключиться между ссылками развертывания и автономными ссылками, просто измените параметр «value» в файле XML.

Вы можете хранить там атрибуты "store1" и "store2", чтобы мне не пришлось запоминать их, когда я их переключаю.

...