3

私は本番環境とローカルの DJANGO 開発環境を持っています。本番環境にプッシュするために、すべての CSS および JS ファイルを縮小および gzip するデプロイヤがあります。

それらを本番環境で提供するには、次のように呼び出す必要があります

  <link rel="stylesheet" href="{{ STATIC_URL }}css/filename.min.css.gz">

ただし、開発時には、通常の css ファイルを次のように提供する必要があります (保存するたびに再縮小して gzip する必要はありません)。

  <link rel="stylesheet" href="{{ STATIC_URL }}css/filename.css">

デプロイヤに何かを追加することで、この動作を達成して自動化する方法はありますか?、他の回避策はありますか?

各デプロイに追加するhtmlパーサーを実装できることはわかっていますが、きちんとしたdjango指向のソリューションを探しています。

4

3 に答える 3

1

私は@Nursultanのアイデアが好きです。これを強制するには、次のようにコンテキスト プロセッサをコーディングできます。

# On yourapp.context_processor.py
from django.conf import settings

def debug_set(request):
    return {'debug_set': settings.DEBUG}

# On your settings.py
TEMPLATE_CONTEXT_PROCESSORS = (
    .
    .
    .
    'yourapp.context_processors.debug_set',
)

# On your templates
{% if debug_set %}
    <link rel="stylesheet" href="{{ STATIC_URL }}css/filename.css">
{% else %}
    <link rel="stylesheet" href="{{ STATIC_URL }}css/filename.min.css.gz">
{% endif %}
于 2015-07-13T22:13:16.120 に答える
0

私はこの問題に遭遇したことはありませんが、次の 2 つの解決策を考え出しました。

  1. settings.py本番用と開発用で使い分けてください。ただし、同じ名前を持ち、*.min.jsミニファイアーの構成を変更する必要があります。
  2. または、グローバル変数を使用してどこにでも書き込みます

    {% if development_stage %} <link> {% else %} <link> {% endif %}

Django - すべてのテンプレートで変数を使用できるようにする方法は?

于 2015-07-13T20:56:04.957 に答える