我有一个webdev问题
我有接近10,000个服务器端页面,所有这些都使用相同的样式表。我创建了一个新的服务器端页面,就像一个动态菜单系统,可以帮助您快速,轻松地从现有的10,000页中查找特定页面。
问题是,如果使用旧菜单系统以旧方式访问服务器端页面,则应保留旧样式表。但是,如果通过新菜单系统访问它们,则应使用新刷新的样式表。
编辑10,000个页面似乎不是一个好选择。解决这个问题的最佳方法是什么?
答案 0 :(得分:2)
将样式表放在app_themes文件夹中,并在web.config中进行设置。然后你可以快速地在两者之间进行切换。或者你可以在pre_init事件的代码中设置它
编辑: 1:添加和app_themes文件夹,创建两个带主题名称的子文件夹(例如,默认或蓝色等)
2:在web.config中设置或
3:捕获您希望更改的每个页面的page_init(或者对于母版页和许多页面具有基页类并覆盖page_init)并将Page.Theme =设置为您想要的主题。最好的关闭会话状态,从我可以告诉。所以像这样:
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"]);
}
希望这有助于父亲
答案 1 :(得分:0)
如果您不能编写一些全局服务器端代码,也没有全部模板用于所有10.000页面,我的第一个想法是根据特定的url参数为CSS文件设置URL-Rewrite。因此,如果提交此参数,您可以获得第二个CSS文件,如果不是,则重写将提供原始css文件。
答案 2 :(得分:0)
通常我建议使用URL重写,以便将旧样式的请求重定向到new。 (IIS可以这样做,例如:http://www.iis.net/download/URLRewrite)
答案 3 :(得分:0)
以下页面可能对您有用Oshirowanen。
我搜索了iis6的mod_rewrite样式选项,然后出现了这个问题。这是从2008年开始,但似乎至少在你正在寻找的iis6环境中,我希望,允许你设置某种访问规则,可以将其中一个域上的客户端重定向到某些域您指定的新css文件夹/资产。