2012-01-23 19 views
6

私は自分のストレージバックエンドをAmazon S3に変更したばかりで、私のバックグラウンドが自分のサイトに読み込まれていないことに気付きました。私は見て、自分のCSS(実際にはSASS)で背景URL(static/mysite/images/background.gif)を指定していたことを認識しました。STATIC_URLを使用したDjango CSSの背景画像

この問題をどのように修正する必要があるのでしょうか。もちろん私は私の新しい静的URLに変更することができますが、それは悪い練習のように思えます。だから私はのHTMLで{{ STATIC_URL }}と背景画像を読み込もうとしましたが、repeat: no-repeat;が実際のCSSでレンダリングされる前に背景がレンダリングされ、CSSの読み込み中に背景が画面全体にわたって繰り返されます。とにかく、自分のスタイルをドキュメントに混ぜるのは好きではありません。

だから、Djangoで背景画像の相対パスを指定する最も良い方法は何ですか? CSSをテンプレートとして設定し、ビューを介して直接指示する必要がありますか?それも面倒です。

また、私はそれをstatic_urlに無関係にすることについて忘れてはなりませんか、私のCSSのものをハードコードしていますか?

答えて

8

Django compressor!

それはあなたが最終的に一つのファイルに結合されるか、あなたもDjangoのテンプレートエンジンとコンテキストを使用してCSSファイルの解析を可能にするためのオプションを指定することができ、あなたのテンプレート内部で直接CSSのスニペットをレンダリングすることができます: http://django_compressor.readthedocs.org/en/latest/settings/#django.conf.settings.COMPRESS_CSS_FILTERS

CSSを管理する際のパフォーマンスについて考える必要はないので、驚くほど価値があります。

+0

Woah!私は文字通り静的なファイル圧縮のためにそれを見ていましたが、この質問には関係ありませんでした!本当にありがとう! –

+0

@ saul.shanabrook hah! :)それは素晴らしい成熟した図書館です。 –