2012-12-07 83 views
3

我使用Yeoman(http://yeoman.io/)作爲concat/minises css和javascript的前端構建過程。有條件地加載Django模板中的開發或生產靜態文件

在開發環境中,我想單獨加載未精簡的源代碼以便輕鬆進行調試,而無需設置Chrome源地圖(http://code.google.com/p/closure-compiler/wiki/SourceMaps) 。在製作過程中,連接的縮小的源被加載以提高性能。

我最初的做法是使用條件我的模板中,如下所示:

from django.conf import settings # import the settings file 

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

是否有任何缺點,以這樣的:

{% 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 %} 

發展是使用上下文處理器暴露在模版上下文方法,是否有更簡潔的方法來完成這個在Django中?

+0

你有沒有考慮過使用[django pipeline](http://django-pipeline.readthedocs.io/en/latest/index.html)? – guival

回答

3

我會用你的DEBUG設置已經包含在django.core.context_processors.debug

{% if debug %} 
    <!-- scripts --> 
{% else %} 
    <!-- other scripts --> 
{% endif %}