Django Compressor

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 %}

注意事项 #

  • 在开发环境中可能需要禁用压缩以方便调试
  • 确保在生产环境中正确配置缓存
  • 定期检查和更新依赖,以获取最新的功能和安全修复