Django-compressor #
Django-compressor 是一个强大的 Django 应用,用于压缩和管理静态资源(如 CSS 和 JavaScript 文件)。 它的主要目标是优化网站性能,减少加载时间,并简化静态文件的管理。
https://github.com/django-compressor/django-compressor https://django-compressor.readthedocs.io/en/latest/index.html https://cheat.readthedocs.io/en/latest/django/compressor.html
主要特性 #
- 文件压缩: 压缩 CSS 和 JavaScript 文件,减少文件大小。
- 文件合并: 将多个文件合并成一个,减少 HTTP 请求。
- 预处理器支持: 支持 SASS, LESS, CoffeeScript 等预处理器。
- 离线压缩: 可以在部署时预先压缩文件。
- 缓存: 智能缓存压缩后的文件,提高性能。
配置 #
- 将 ‘compressor’ 添加到 INSTALLED_APPS:
INSTALLED_APPS = [
# ...
'compressor',
]
- 配置静态文件查找器:
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'compressor.finders.CompressorFinder',
)
- 配置压缩选项(可选):
COMPRESS_ENABLED = True # 在生产环境中启用
COMPRESS_CSS_FILTERS = [
'compressor.filters.css_default.CssAbsoluteFilter',
'compressor.filters.cssmin.CSSMinFilter',
]
使用 #
在模板中使用 compressor 标签:
{% load compress %}
{% compress css %}
<link rel="stylesheet" href="/static/css/style1.css" type="text/css" charset="utf-8"/>
<link rel="stylesheet" href="/static/css/style2.css" type="text/css" charset="utf-8"/>
{% endcompress %}
{% compress js %}
<script src="/static/js/script1.js" type="text/javascript" charset="utf-8"></script>
<script src="/static/js/script2.js" type="text/javascript" charset="utf-8" ></script>
{% endcompress %}
注意事项 #
- 在开发环境中可能需要禁用压缩以方便调试
- 确保在生产环境中正确配置缓存
- 定期检查和更新依赖,以获取最新的功能和安全修复