2009-02-15 89 views
3

我创建了一个叫做style.php CSS页面,这包括顶部:在css文档中使用php是一个坏主意吗?

<?php header("Content-type: text/css"); ?>

这是否让你畏缩。这是一个可怕的主意吗?我这样做是因为我创建了一个允许管理员控制页面颜色的CMS(所以style.php脚本查询数据库并获取十六进制值)。

有什么想法?

回答

4

这是一个很好的解决方案,只要确保您正在提供适当的标题。有关相关主题,请参阅my blogpost(搜索“重要标题”以进入正确的部分)。

一件事:

随着你可能会进入一用户改变她想看到的颜色,但(因为它是在客户端缓存),该网页不更新的情况缓存。要使缓存失效,请在URL末尾附加一个?= id,其中ID是为用户存储的数字(例如在会话中),并且每次更改颜色方案时都会增加。

例子:

+0

实际上,控制缓存的正确方法是使用Etag头,而不是查询字符串。 – 2009-02-15 06:56:21

+0

实际上,当缓存过期时,使用查询字符串是一个很好的技巧来启用缓存和控制。有关更多信息,请参阅http://developer.yahoo.com/performance/rules.html#expires。 – 2009-02-15 07:22:24

1

假设您使用适当的缓存,正如我想象的CMS驱动的值可能不会经常更改,没有具体的理由来避免创建一个CSS动态包含。

1

这不是一个坏主意。这是许多好处一个创造性的想法:W/O你不必担心安全(解析CSS是硬)

  • 用户可以定义值
  • 可以强制视觉上更加一致的皮肤(一些灵活性比完全的灵活性更好)
  • 简单的代码
5

这不是一个坏主意(受有关缓存+内容类型)的音符,但想想发射了一个PHP实例的成本(mod_php的)或将脚本传递给已经运行的php(fastcgi样式)。你真的想要那个开销吗?

将一个“缓存”版本的CSS页面写入一个静态文件并提供它(或者如果您需要每页灵活性,选择要包含的样式表;我假设您的主页是PHP已经)

相关问题