处理用户自定义样式的最佳方式是什么?作为我正在寻找的结果的示例,这就足够了:
body {
color: {{ user.profile.text_color }};
}
但是,将 CSS 用作 View 似乎会在不断请求的文件中造成大量开销,因此这可能不是一个好的解决方案。
用户无权访问 CSS 文件,我们必须假定他们没有 Web 开发知识。
最佳答案
However, serving CSS as a view seems like it would cause a significant amount of overhead in a file that is constantly requested, so this is probably not a good solution.
如果您一次性生成该 CSS 会怎么样?
- 默认 CSS 是:
/common/css.css
- 成员自定义 CSS,现在
<link />
元素指向/user-specific/123.css?ts=123123123
.123
当然是成员(member)的标识符,ts
参数包含一个时间戳 - 最后一次修改 CSS 的日期 - 确保您的 CSS 生成器设置了负责客户端缓存的正确 HTTP header
- 用户浏览器请求 CSS 文件 - 服务器简单回复
304 Not Modified
header - 无需执行任何脚本或下载内容 - 当成员修改他的 CSS 时,您只需更新
ts
- 再一次只需要一个请求
关于css - 生成动态 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3589661/