django - 在 Django 模板中有条件地加载开发或生产静态文件

标签 django build-automation development-environment

我使用 Yeoman (http://yeoman.io/) 作为前端构建过程,它连接/缩小 css 和 javascript。

在开发环境中,我希望加载单独的、未缩小的源代码以便于调试,而无需设置 Chrome 源 map (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 中有没有更简洁的方法来完成它?

最佳答案

我会使用你的 DEBUG 设置,它已经包含在 django.core.context_processors.debug 中。

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

关于django - 在 Django 模板中有条件地加载开发或生产静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13769972/

相关文章:

Django 根据条件对相关对象进行计数

python - Django - 如何创建一个简单的确认 View ?

node.js - Grunt watch 插件不显示 UglifyJS 中止消息

c++ - 使用相似规则构建多个可执行文件

vim - 管理您的ctags标签文件最简单/最好的方法是什么?

c# - Windows 开发环境值得付出代价吗?

python - 全局名称 'get_user_model' 未定义

python - 为什么 django-lint 告诉我 `auto_now_add` 已弃用?

visual-studio-2012 - 如何在不安装Visual Studio 2012的情况下使用MsBuild在生成服务器上生成Visual Studio 2012发布配置文件

development-environment - 在虚拟机中设置开发环境