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,显示执行成功,但找到不生成的压缩文件