Django 静态文件的压缩和合并

2023-04-11 00:00:00 合并 静态 压缩

Django提供了一个名为django-compressor的第三方扩展,可以帮助我们自动压缩和合并静态文件。

首先,我们需要安装django-compressor。可以通过以下命令使用pip来安装:

pip install django-compressor

安装完成后,我们需要在Django项目的settings.py文件中添加以下代码来启用django-compressor:

INSTALLED_APPS = [
    # ...
    'compressor',
    # ...
]

# 在STATICFILES_FINDERS中加入如下代码
STATICFILES_FINDERS = [
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'compressor.finders.CompressorFinder',
]

接下来,我们在HTML文件中使用compressor标签来引用静态文件,例如:

{% load compress %}
<html>
<head>
    {% compress css %}
        <link rel="stylesheet" href="{% static 'css/main.css' %}">
        <link rel="stylesheet" href="{% static 'css/theme.css' %}">
    {% endcompress %}
</head>
<body>
    {% compress js %}
        <script src="{% static 'js/jquery.js' %}"></script>
        <script src="{% static 'js/main.js' %}"></script>
    {% endcompress %}
</body>
</html>

compressor标签内部包含两个子标签:css和js,分别用于压缩和合并CSS和JavaScript文件。在子标签内部,我们可以像平时引用静态文件一样使用{% static %}模板标签来引用静态文件。

在运行Django项目时,django-compressor会自动对指定的静态文件进行压缩和合并,并将结果缓存在指定的位置,以便以后快速访问。

注意:以上代码只是演示用例,其中涉及到的静态文件名称和路径可能会有所不同。

相关文章