我创建了名为style.php的css页面,其中包含了top:
<?php header("Content-type: text/css"); ?>
这会让你畏缩吗?这是一个糟糕的主意吗?我这样做是因为我创建了一个CMS,允许管理员控制页面上的颜色(因此style.php脚本查询数据库并获取十六进制值)。
有什么想法吗?
答案 0 :(得分:5)
这不是一个坏主意(取决于缓存+内容类型的注释),但考虑启动PHP实例(mod_php)或将脚本传递给已经运行的php(fastcgi样式)的成本。你真的想要那个开销吗?
您可能最好将CSS页面的“缓存”版本写入静态文件并提供(或者如果您需要每页灵活性,请选择要包含的样式表;我假设您的主页是PHP已)
答案 1 :(得分:4)
这是一个很好的解决方案,只需确保您提供适当的标头。有关相关主题,请参阅my blogpost(搜索“重要标题是”以获取正确的部分)。
还有一件事:
通过缓存,您可能会遇到用户更改其想要查看的颜色的情况,但(因为它在客户端缓存),页面不会更新。要使缓存无效,请在URL的末尾附加?= id,其中ID是为用户存储的数字(例如在会话中),并且每次更改颜色方案时都会递增。
示例:
答案 2 :(得分:1)
假设您使用了适当的缓存,因为我认为CMS驱动的值可能不会经常发生变化,因此没有特别的理由避免动态创建CSS包含。
答案 3 :(得分:1)
这不是一个坏主意。这是一个有很多好处的创意: