根据编译配置更改母版页中CSS文件的位置

时间:2010-06-22 23:18:04

标签: visual-studio visual-studio-2010 web-config configuration-files

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是一个简单的属性,只是查询Web配置中的值。

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

这对于剧本来说很有用,但是为此付出了沉思......

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

在这种情况下,它只对“&lt;%=”和“%&gt;”进行编码这远远不够理想。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

为您的链接添加ID和runat =“server”属性,如下所示:

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

然后你可以在代码隐藏中以编程方式更改样式表的源代码:

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