当前位置:  开发笔记 > 编程语言 > 正文

使用ASP.NET动态设置CSS值

如何解决《使用ASP.NET动态设置CSS值》经验,为你挑选了1个好方法。

我正在一个网站上,图片和其他资源将位于与网站主要内容不同的域中.我们将为主站点使用类似"www.example.com"的内容,然后使用"images.example.com"获取样式等所有额外资源.

在开发网站时,我会将所有这些资源保存在本地开发中.机器.这里的挑战是保持生产服务器和开发环境之间的CSS引用一致.

我想要做的是创建一个web.config存储图像服务器的URL的密钥.然后,当从开发切换到生产时,我可以只更改web.config值,一切都会完成.

有没有办法从配置或C#类中的某个位置动态或以其他方式向CSS文件添加值?或者我是以错误的方式来做这件事的?

另外,如果有所不同,我只能使用.NET 2.0.

更新
为了进一步扩展,我知道我可以使用web.config设置服务器控件的URL.这些已经动态生成.我更感兴趣的是我有什么选项可以修改(或做" 某事 ")静态CSS文件,这些文件允许我更改CSS中引用的背景图像资源等URL.除了使用我的IDE查找/替换值之外,我还能做些什么吗?也许可以使用部署脚本自动完成的事情?



1> Shawn..:

将CSS文件保留在图像服务器上是一个选项吗?如果可能,您可以使所有图像引用相对,然后您只需要更新到css文件的链接.

style.css" />

如果您仍想动态发送或生成css文件:

css文件不必以css结尾.aspx很好.你可以这样做:


然后在你的style.aspx页面中:

protected void page_load(){
    Response.ContentType = "text/css";
    if (ConfigurationManager.AppSettings("css-server") == "local") {
        Server.Transfer("css/local.css");
    } else {
        Server.Transfer("css/production.css");
    }   
}

如果您仍想动态生成css文件,我将使用HttpHandler,将contenttype设置为"text/css",然后使用Response.Write生成css.如果你坚持让页面以css结尾,你可以随时注册css转到IIS中的asp.net,然后注册global.asax application_Begin请求中的传入请求,如果文件以.css结尾,请使用httpcontext.current.rewritepath你的经纪人.

这将在运行时动态生成style.css的净效果.

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有