【问题标题】:Django CSS Background Image using STATIC_URL使用 STATIC_URL 的 Django CSS 背景图像
【发布时间】:2012-02-16 11:22:24
【问题描述】:

我刚刚将我的存储后端更改为 Amazon S3,我意识到我的背景没有为我的网站加载。我查看并意识到在我的 CSS(实际上是 SASS)中我指定了背景 URL(static/mysite/images/background.gif)。

我想知道我应该如何解决这个问题。当然,我可以将其更改为我的新静态 URL,但这似乎是一种不好的做法。所以我尝试在我的body HTML 中使用{{ STATIC_URL }} 加载我的背景图像,但是它首先呈现我的背景,然后repeat: no-repeat; 在我的实际CSS 上呈现,导致背景在整个屏幕上重复,而CSS 加载。无论如何,我不喜欢将我的样式混合到我的文档中。

那么在 Django 中为背景图像提供相对路径的最佳方法是什么?我应该将我的 CSS 设置为模板,并通过视图指向它吗?这看起来也很乱。

或者我应该忘记让它与 static_url 无关,而只是在我的 CSS 中硬编码吗?

【问题讨论】:

    标签: css django sass django-storage django-statistics


    【解决方案1】:

    Django compressor!

    它可以让你直接在你的模板中渲染 CSS 的 sn-ps,最终组合成一个文件,或者你甚至可以指定选项来启用使用 django 的模板引擎和上下文解析你的 CSS 文件: http://django_compressor.readthedocs.org/en/latest/settings/#django.conf.settings.COMPRESS_CSS_FILTERS

    这太棒了,而且值得麻烦,因为您在管理 CSS 时无需考虑性能。

    【讨论】:

    • 哇!我实际上是只是查看与此问题无关的静态文件压缩!非常感谢!
    • @saul.shanabrook 哈哈! :) 这是一个非常成熟的库。