Изменение местоположения файла CSS на главной странице в зависимости от конфигурации компиляции - PullRequest
1 голос
/ 23 июня 2010

В Visual Studio 2010 появилась новая замечательная функция. Теперь вы можете добавить файлы преобразования, которые изменят файл web.config в зависимости от компилируемой вами конфигурации. В результате вы можете изменить файл web.config для различных сред (например, dev, staging, production и т. Д.).

Это нормально и прекрасно для файла web.config, но как насчет других страниц, которые могут нуждаться в такой нежной заботе. Например, наша главная страница указывает на разные местоположения файла CSS в разных средах (да, я знаю, это была не моя идея, и я не могу ее изменить). Есть ли классный и / или элегантный способ внести изменения?

Я пытался использовать

  <appSettings>
    <add key="pathPrefix" value="/OAFA/"  xdt:Transform="Replace" xdt:Locator="Match(key)"/>
   </appSettings>

, а затем добавьте следующее на главной странице. PathPrefix - это простое свойство, которое запрашивает значение в веб-конфигурации.

    <script src="<%= PathPrefix %>scripts/jquery-1.3.2.js" type="text/javascript"></script>

Это прекрасно работает для сценариев, но для этого просто отстой ...

    <link rel="Stylesheet" href="<%= PathPrefix %>css/main.css" />

В этом случае он просто кодирует «<% =» и «%>», что намного меньше идеального. Есть мысли?

1 Ответ

1 голос
/ 23 июня 2010

Добавьте идентификатор и атрибут runat = "server" к вашей ссылке, например:

<link id="StylesheetLink" runat="server"
      rel="stylesheet" href="stylesheet1.css" type="text/css" />

И затем вы можете программно изменить исходный код таблицы стилей в своем коде следующим образом:

StylesheetLink.Attributes["href"] = "stylesheet2.css";
...