我的任务是设置一个机制来动态更改.Net站点中的css颜色。目的是确保在我们的内部应用程序站点构建并部署到我们的UAT服务器时,站点的UI与实时版本明显不同,而不更改代码库。
一个选项是遍历每个站点并创建一个并行的UAT版本的CSS但我希望有一个处理程序或某些东西来替换基于键/值对的CSS中的颜色定义,因为我们的颜色是整个应用程序非常标准。理想情况下,它应该简单地拦截css请求,用所需的UAT颜色替换任何标准颜色代码定义,并将CSS替换为服务器。这听起来像是问题的现实解决方案,还是有人可以建议一种更好的方法,而不涉及管理多个css定义?
答案 0 :(得分:0)
只是一个更新,我发现了一些非常类似于我在这里想要实现的东西。
答案 1 :(得分:0)
Alex(您发布博客链接的人)说您需要将以下内容添加到web.config中:
如果您使用的是“IIS6 / Visual Studio测试服务器”:
<system.web>
<httpHandlers>
<add verb="*" path="*.css" type="StyleSheetHandler"/>
</httpHandlers>
</system.web>
如果您使用的是IIS7:
它应该可以工作,但是如果没有,那么你将需要像这样检查映射:
对于网站:
IIS6 > Website > Home directory
对于虚拟目录,请浏览:
IIS6 > Virtual folder > Virtual directory (default tab)
单击应用程序设置区域中的configuratino按钮。
找到.css扩展名并检查它是否正在使用aspnet_isapi.dll
如果不是,那么只需改变它就可以了。 (您可以从任何其他.NET扩展名复制完整的URL,例如.aspx)
然后一切都应该正常。
答案 2 :(得分:0)
您需要像HTTP处理程序一样复杂的东西。只需创建一个输出CSS的.aspx页面。它可以是.aspx,只需将您的标记引用到.aspx页面。
如果你真的想让你的.css页面由ASP.NET处理(我不会因为它会影响性能),那么你想要添加如下的扩展名映射:http://blogs.iis.net/ruslany/archive/2008/09/30/wildcard-script-mapping-and-iis-7-integrated-pipeline.aspx
答案 3 :(得分:0)