使用STATIC_URL的Django CSS背景图像

时间:2012-01-23 00:29:53

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

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

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

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

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

1 个答案:

答案 0 :(得分:8)

Django compressor!

它允许您直接在模板中渲染CSS片段,最终组合成单个文件,或者您甚至可以指定选项以使用django的模板引擎和上下文解析CSS文件: http://django_compressor.readthedocs.org/en/latest/settings/#django.conf.settings.COMPRESS_CSS_FILTERS

这很神奇,值得一试,因为在管理CSS时你不需要考虑性能。