2012-01-23 72 views
6

我剛剛將存儲後端更改爲Amazon S3,並且我意識到我的背景未加載到我的網站。我看了看,發現在我的CSS(實際上是SASS)中,我指定了背景URL(static/mysite/images/background.gif)。使用STATIC_URL的Django CSS背景圖像

我想知道如何解決這個問題。當然我可能只是將其更改爲我的新的靜態URL,但這似乎是一個不好的做法。所以我試着在我的body HTML中加載我的背景圖片{{ STATIC_URL }},但是之後它會渲染我的背景,然後repeat: no-repeat;呈現在我的實際CSS上,導致背景在CSS加載時在整個屏幕上重複。無論如何,我不喜歡將我的風格混合到我的文檔中。

那麼在Django中爲背景圖像提供相對路徑的最佳方式是什麼?我是否應該將CSS設置爲模板,並通過視圖指向它?這似乎也很麻煩。

或者我應該忘記使它成爲static_url不可知的,只是硬編碼我的CSS的東西?

回答

8

Django compressor!

它可以讓你渲染CSS的片段直接在您的模板,最終組合成一個單一的文件中,你甚至可以指定選項,使您的CSS文件的解析Django的模板引擎和上下文: http://django_compressor.readthedocs.org/en/latest/settings/#django.conf.settings.COMPRESS_CSS_FILTERS

這是驚人的,值得的麻煩,因爲你不需要考慮管理CSS時的性能。

+0

哇!我從字面上看_just_看靜態文件壓縮,與這個問題無關!非常感謝! –

+0

@saul.shanabrook哈! :)這是一個非常成熟的圖書館。 –