16

私はdjango-compressorを使用して、このサイトの CSS ファイルと JS ファイルを連結および圧縮しています。S3 バケットから静的ファイルを提供しています。

サイトのローカル コピーで、別の S3 バケットを使用すると、これはすべて完全に機能します。しかし、Heroku でホストされているライブ サイトでは、CSS ファイル内の画像の相対 URL が書き換えられないことを除けば、すべて機能します。

たとえば、CSS ファイルの次の行:

background-image: url("../img/glyphicons-halflings-grey.png");

に書き換えられます:

background-image:url('https://my-dev-bucket-name.s3.amazonaws.com/static/img/glyphicons-halflings-grey.png')

私の開発サイトではありますが、ライブサイトでは触れられていません。そのため、ライブ サイトは最終的に画像を探しpepysdiary.s3.amazonaws.com/static/CACHE/img/ます (新しい圧縮された CSS ファイルに関連しているため)。

今のところ、画像を含むディレクトリをその場所に置いていますが、なぜこの違いがあるのか​​ わかりません。両方のサイトの設定にこれがあります:

COMPRESS_CSS_FILTERS = [
    # Creates absolute urls from relative ones.
    'compressor.filters.css_default.CssAbsoluteFilter',
    # CSS minimizer.
    'compressor.filters.cssmin.CSSMinFilter'
]

CSS ファイルは問題なく最小化されていますが、実際のサイトでは他のフィルターが適用されていないようです。

4

3 に答える 3

0

これとまったく同じ問題が 1 か月間続いていますが、これは 1.3 リリースで修正されているため (2013 年 3 月 18 日なので、おそらく 1.2 を使用していたはずです)、アップグレードしてください:

pip install -U django-compressor

私が解決することをあきらめた正確な問題ですが、それは Heroku と CssAbsoluteFilter が呼び出されているが _converter メソッドで失敗していることに関連しています。1.3 の変更ログを見ると、関連する唯一のコミットは次のとおりです

私はそこであきらめた、人生は短すぎる。

于 2013-03-24T14:26:43.263 に答える
0

一方、これは django-compressor 1.6 で修正されました。変更ログから:

Apply CssAbsoluteFilter to precompiled css even when compression is disabled

つまり、絶対フィルタは DEBUG = True でも実行されます。

于 2015-12-06T16:12:14.750 に答える