代码之家  ›  专栏  ›  技术社区  ›  Craig

基于编译配置更改母版页中CSS文件的位置

  •  1
  • Craig  · 技术社区  · 14 年前

    VisualStudio2010有一个非常酷的新特性。现在可以添加转换文件,这些文件将根据正在编译的配置更改web.config文件。其结果是,您可以为各种环境(例如:dev、staging、production等)更改web.config文件。

    对于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" />
    

    在本例中,它只编码“<%=”和“%>”这远远不够理想。有什么想法吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Chris    14 年前

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

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

    然后您可以在代码隐藏中以编程方式更改样式表的源代码,如下所示:

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