预压缩是django开发人员的可插入应用程序,他们希望提供预压缩(gzipped)静态文件。
django-precompressed的Python项目详细描述
django预压缩
预压缩是django开发人员的可插入应用程序,他们希望提供预压缩(gzipped)静态文件。
关于
- 更改/manage.py collectstatic的行为以保存指定静态文件的gzip副本(默认情况下为*.css和*.js)。
- 当客户端支持内容编码:gzip并且使用{%static%}时,呈现的uri将引用静态文件的预压缩版本。
安装
- pip install django precompressed
- 将预压缩的添加到设置中。在'django.contrib.staticfiles'之前安装的应用程序,以便使用预压缩的{%static%}版本。
- 将“settings.staticfiles”存储设置为适合您需要的存储(请参见下面的存储)。
- 运行/manage.py collectstatic生成预压缩副本。
- 在引用静态文件时使用模板标记。
配置
所有设置都是可选的,并通过设置.precompressed_settings字典指定。
- gzip_patterns是要gzip的文件模式的元组。默认为('*.css','*.js')
- 默认压缩级别是指定默认压缩级别的数字0-9。默认为9。
- 接受gzip(请求)是一个函数,如果客户端支持内容编码:gzip
- get_gzipped_name(name)是一个将文件名和uri转换为预压缩版本的函数。默认为resource.ext将变为resource.gz.ext
- should_save_gzipped_copy(path)是一个函数,如果指定文件应保存预压缩副本,则返回true。默认为文件匹配gzip_模式?
存储量
precompressed.storage.PrecompressedStaticFilesStorage precompressed.storage.CachedPrecompressedStaticFilesStorage
这些存储扩展了django的内置staticfiles存储,以提供所描述的预压缩行为。如果使用此选项,则可能需要配置Web服务器,以便在提供预压缩文件时添加内容编码:gzip头。
precompressed.storage.s3boto.PrecompressedS3BotoStorage precompressed.storage.s3boto.CachedPrecompressedS3BotoStorage
这些存储扩展了[django storages的s3botostorage](http://django-storages.readthedocs.org/en/latest/backends/amazon-S3.html),为存储在[amazon simple storage service(amazon s3)](http://aws.amazon.com/s3/)上的文件提供描述的预压缩行为
每个缓存的前缀版本使用[CaseDeFixMixIn ](https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#cachedstaticfilesstorage),因此除了预压缩版本之外,还存储静态文件的散列副本。