生成动态CSS

clo*_*hao 15 css django dynamically-generated

处理用户自定义样式的最佳方法是什么?正如我正在寻找的结果的一个例子,这就足够了:

body {
   color: {{ user.profile.text_color }};
}
Run Code Online (Sandbox Code Playgroud)

但是,将CSS作为视图提供似乎会导致不断请求的文件中的大量开销,因此这可能不是一个好的解决方案.

用户无权访问CSS文件,我们必须假设他们没有Web开发知识.

Cro*_*zin 15

但是,将CSS作为视图提供似乎会导致不断请求的文件中的大量开销,因此这可能不是一个好的解决方案.

如果你一次生成那个CSS怎么办?

  1. 默认CSS是: /common/css.css
  2. 会员自定义CSS,现在<link />元素指向/user-specific/123.css?ts=123123123.123当然是成员的标识符,ts参数包含时间戳 - 最后一次CSS修改的日期
  3. 确保CSS生成器设置负责客户端缓存的正确HTTP头
  4. 用户浏览器请求CSS文件 - 服务器回复简单304 Not Modified标题 - 不需要任何脚本执行或内容下载
  5. 当成员修改他的CSS然后你只需更新ts- 再一次只需要一个请求


Ign*_*ams 5

通过视图动态地执行CSS,但使用积极的缓存以便快速加载.