django-pipeline 不压缩

Posted

技术标签:

【中文标题】django-pipeline 不压缩【英文标题】:django-pipeline not compressing 【发布时间】:2012-04-29 10:23:46 【问题描述】:

我刚刚将 django-pipeline 安装到我的 django 应用程序中,它似乎没有压缩我的 javascript 文件。它似乎安装正确,因为模板标签工作正常。我正在使用 manage.py collectstatic 来压缩文件。这是我目前的配置。当我使用 Django 1.3 时,我还设置了我的应用程序以使用 django-pipeline 文档中的 django-staticfiles。

 STATIC_ROOT = os.path.join(PROJECT_ROOT, 'site_media', 'static')
 STATIC_URL = '/site_media/static/'
 ADMIN_MEDIA_PREFIX = '/site_media/static/admin/'

 STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, "media"),
 )

 STATICFILES_FINDERS = (
    ##Turn these on if using django.contrib.staticfiles
    ##'django.contrib.staticfiles.finders.FileSystemFinder',
    ##'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    ##'django.contrib.staticfiles.finders.DefaultStorageFinder',

    ##Turn these on if using django.contrib.staticfiles
    'staticfiles.finders.FileSystemFinder',
    'staticfiles.finders.AppDirectoriesFinder',
    'staticfiles.finders.DefaultStorageFinder'
 )

 PREREQ_APPS = [
    # Django
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',

    #External
    'south',
    'staticfiles',
    'pipeline',    
 ]


 PIPELINE_YUI_BINARY='/Applications/yuicompressor-2.4.7/build/yuicompress'

 PIPELINE_JS = 
    'site': 
        'source_filenames': (
            'js/libs/ddsmoothmenu.js',
            'js/script.js',
        ),
        'output_filename': 'js/script.min.js',
    
 

我不确定我在这里缺少什么,但我确定它是一些东西。我没有收到任何错误消息或任何东西,只是没有压缩。

感谢您的帮助!

【问题讨论】:

既然 django.contrib.staticfiles 包含在标准 Django 发行版中,您不应该使用它吗? @Cerin 你是对的,我前段时间解决了这个问题。我不再使用 django-staticfiles 并且正在使用 contrib。 【参考方案1】:

你是否设置了静态文件:

STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage'

如果是:

你的js文件最终是空的吗?

'/Applications/yuicompressor-2.4.7/build/yuicompress' 是可执行脚本吗?

【讨论】:

这似乎是问题所在。我没有正确设置 STATICFILES_STORAGE。我假设默认是好的。感谢您的帮助!【参考方案2】:

您的设置中有DEBUG=True 吗?尝试添加 PIPELINE=True 以确保它运行压缩

【讨论】:

我已经尝试了这两种方法,但我仍然没有运气。当我打开 PIPELINE 标志和 DEBUG 标志时,它会查找压缩文件,但实际上仍然没有压缩它。 听起来可能是权限问题。您是在开发还是在生产服务器上? 我在 django 开发服务器上运行。我已经检查了 YUI Compressor 以确保它和所有 dirs 以确保所有权限都设置正确。我的第一个猜测是它没有正确调用 YUICompressor,但由于没有错误消息,我不知道它在做什么。

以上是关于django-pipeline 不压缩的主要内容,如果未能解决你的问题,请参考以下文章

Centos环境下,执行gulp,显示执行成功,但找到不生成的压缩文件

gulp压缩html ,css,js,img

为啥 PIPE 文件的 readline() 这么慢?

使用gulp 合并压缩打包,实时监控文件,实现本地server

gulp合并压缩

gulp打包js/css时合并成一个文件时的顺序解决