为什么django-pipeline的{%compressed_js ...%}标记分别输出每个脚本?

时间:2013-09-24 08:08:28

标签: django django-staticfiles django-pipeline

我已经按如下方式配置了管道:

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'pipeline.finders.PipelineFinder',

)

# Static files storage
STATICFILES_STORAGE = 'pipeline.storage.PipelineStorage'

# Pipeline JS compressor
PIPELINE_JS_COMPRESSOR = 'pipeline.compressors.jsmin.JSMinCompressor'

PIPELINE_JS = {
    'website-main': {
        'source_filenames': (
          'shared/jquery/jquery-1.10.2.min.js',
          'shared/bootstrap/js/bootstrap.min.js',
          'shared/jquery/jquery.cookie.js',
        ),
        'output_filename': 'pipeline-compressed/website-main.js',
    }
}

当我在模板中使用{% compressed_js 'website-main' %}时,我会为PIPELINE_JS中配置的3个文件中的每个文件获取一个脚本标记。我不应该看到一个带有src="pipeline-compressed/website-main.js"的脚本标记。

1 个答案:

答案 0 :(得分:4)

settings.DEBUG设置为False以使用压缩文件。或者将settings.PIPELINE_ENABLED设置为True

根据Usage - django-pipeline,选中的设置只是PIPELINE,但在查看版本1.3.15的来源后,您会发现该设置实际上是PIPELINE_ENABLED

  

templatetags将输出源文件名或   压缩文件名,取决于PIPELINE设置,如果不这样做   指定PIPELINE设置,将使用源文件   DEBUG-mode ,以及非DEBUG模式的压缩文件。