首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态更改CSS文件

动态更改CSS文件
EN

Stack Overflow用户
提问于 2011-06-01 17:39:24
回答 4查看 597关注 0票数 2

我有一个webdev问题

我有将近10,000个服务器端页面,所有这些页面都使用相同的样式表。我已经创建了一个新的服务器端页面,它就像一个动态菜单系统,可以帮助您快速轻松地从现有的10,000个页面中找到特定的页面。

问题是,如果使用旧的菜单系统以旧的方式访问服务器端页面,它们应该保留旧的样式表。但是,如果通过新的菜单系统访问它们,它们应该使用新的刷新样式表。

编辑一万多页似乎不是一个好的选择。解决这个问题的最佳方法是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-01 17:40:58

将样式表放在app_themes文件夹中,并在web.config中进行设置。然后,您可以在这两种模式之间快速切换。或者,您可以在pre_init事件的代码中设置它

编辑: 1: Add和app_themes文件夹,创建两个带有主题名称的子文件夹(例如,default或app_themes等)

2:在web.config中设置或

3:捕获您希望更改的每个页面的page_init (或者对于母版页和许多页面都有一个基页类并覆盖page_init),并将Page.Theme =设置为您想要的主题。据我所知,最好将它保存在会话状态中。所以就像这样:

代码语言:javascript
复制
 if (Session["Theme"] == null)
  {
    //the string is the theme as per the cleaners default
    string chosenTheme = selectedTheme();
    Session.Add("Theme", chosenTheme);
    Page.Theme = ((string)Session["Theme"]);
  }
  //if the page is reloaded.
  else
  {
    Page.Theme = ((string)Session["Theme"]);
  }

希望这能帮助国王

票数 2
EN

Stack Overflow用户

发布于 2011-06-01 17:45:06

如果你不能写一些全局服务器端代码,也不能为所有的10.000个页面创建一个全局模板,我的第一个想法是基于特定的url参数对CSS文件进行url重写。所以你可以有第二个CSS文件,如果这个参数被提交,它将被服务,如果没有,重写将服务于原始css文件。

票数 0
EN

Stack Overflow用户

发布于 2011-06-01 17:45:12

通常情况下,我会建议URL重写,以便将对旧样式的请求重定向到新样式。(IIS可以做到这一点,例如:http://www.iis.net/download/URLRewrite )

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6199155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档