3

私は、cssとjavascriptを連結/最小化するフロントエンドビルドプロセスとしてYeoman(http://yeoman.io/)を使用しています。

開発環境では、Chromeソースマップ(http://code.google.com/p/closure-compiler/wiki/SourceMaps)を設定しなくても簡単にデバッグできるように、個別の縮小されていないソースをロードする必要があります。本番環境では、パフォーマンスのために、連結された縮小されたソースがロードされます。

私の最初のアプローチは、次のようにテンプレート内で条件を使用することです。

    {% if DEVELOPEMENT %}
        <!-- library -->
        <script src="{{ STATIC_URL }}lib/jquery.js"></script>
        <script src="{{ STATIC_URL }}lib/some_library.js"></script>

        <!-- app -->
        <script src="{{ STATIC_URL }}scripts/main.js"></script>
        <script src="{{ STATIC_URL }}scripts/app_model.js"></script>
        <script src="{{ STATIC_URL }}scripts/app_view.js"></script>

    {% else %}
        <script src="{{ STATIC_URL }}min/lib.min.js"></script>
        <script src="{{ STATIC_URL }}min/app.min.js"></script>
    {% endif %}

DEVELOPMENTは、コンテキストプロセッサを使用してテンプレートコンテキストに公開されます。

from django.conf import settings # import the settings file

def development(context):
    return {'DEVELOPEMENT': settings.DEVELOPEMENT}

この方法には欠点がありますか?Djangoでこれを達成するためのよりクリーンな方法はありますか?

4

1 に答える 1

3

DEBUGに既に含まれている設定を使用しますdjango.core.context_processors.debug

{% if debug %}
    <!-- scripts -->
{% else %}
    <!-- other scripts -->
{% endif %}
于 2012-12-07T20:06:46.063 に答える