6

この問題は、Django Compressor を使用する実稼働サイトに固有のものです。COMPRESS_OFFLINE = True のときにこれを機能させて、本番環境にプッシュする前にサイトのすべての css ファイルを事前に圧縮できるようにします。

base.html 内で、これと同等のことをしたいと思います。

{% compress %}
    {% block css %}
    {% endblock %}
{% endcompress %}

base を拡張するファイル内のすべての css ブロックが圧縮されるようにします。これは主に、すべての子テンプレートに {% compress %} タグを追加する必要がないようにするためです。

スタック オーバーフローにも同様の問題がいくつかありますが、オフラインで圧縮する場合 (つまり、Django Compressor の圧縮管理コマンドを使用する場合) にこれを行うための適切な解決策が見つかりませんでした。COMPRESS_OFFLINE = False の場合、周囲の圧縮タグは正常に機能します。誰かがこれをオフラインにする方法を見つけましたか?

非オフライン ソリューションに関連すると思われる同様のスレッドをいくつか挙げます。2 番目のスレッドのリンクは、Django Compressor をオフラインで使用する際の継承に関する過去の問題があったことを示していますが、おそらく解決されています。

Django-compressor とテンプレートの継承

django-compressor はテンプレートの継承で動作しますか?

4

1 に答える 1

0

その手法を機能させるにはオフラインで圧縮を使用しましたが、キャッシュが適切に設定されている限り、リソースが変更されない限り、django-compressorはすべてのリクエストで再圧縮しません。

私はこの手法を使用して、ユーザーがlesscssを使用してサイトのテーマを拡張したり、ミックスインなどを使用したりできるようにしました。動作するのは少し厄介ですが、(これまでの経験では)正しく構成されていると完全に安定しており、導入されません。初めて圧縮されると、かなりのリクエストレイテンシが発生します。

pingdomblamestellanew relicなどのサービスを設定して、さまざまなページにアクセスし、圧縮されたアセットが常にキャッシュにあるようにすることができます(稼働時間を監視しますが、これでも機能します)

于 2012-08-01T14:56:30.393 に答える