css - 生成动态 CSS

标签 css django dynamically-generated

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

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 会怎么样?

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

关于css - 生成动态 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3589661/

相关文章:

javascript - 提交后启用提交按钮

javascript - html css 定位不起作用

没有相关名称的 Django REST Framework 嵌套关系

php - 生成的 CSV 下载为空但有内容

mysql - 自动将数据从数据库导出到 CSV 文件

javascript - 如何实现这种 ubereats(以及推特)设计?

jquery - Github 与 Browsersync 的显示错误

javascript - 如果 URL 不是 home/root,Javascript 代码将无法工作

python - 使用 Django 过滤器

php - 动态绑定(bind)元素不订阅 CSS 规则