您的位置:首页 > 编程语言 > Go语言

在django中处理和压缩静态文件

2016-12-27 17:42 513 查看
通常,对于一个页面请求来说,要经过很多步骤,每个步骤都会增加页面加载的负担,为了减少加载的时间和提高性能,通常要对静态文件进行必要的优化。

本文主要以django为基础,介绍django下的基本静态优化和部署方法,包括以下内容

1. Hash静态文件

2. Cache静态文件

3. 压缩静态文件

Hash和Cache静态文件

Django其实自带了Hash和Cache静态文件的功能,在默认情况下没有启动而已,我们对django设置一些参数来实现创建CSS和JS文件的哈希值,这个技术可以在文件发生变化时计算新的Hash值,并更新HTML中的引用,实现用户浏览器自动更新到新的静态文件。
设置方法很简单:


#在设置文件setting.py中加入以下配置

STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.CachedStaticFilesStorage'


当进行部署时,Debug=True,执行python manage.py collectstatic 就会自动在生成hash命名的静态文件在STATIC_ROOT/CACHE/下面

压缩静态文件

# 第一步:安装
pip install django_compressor


# 第二步:设置(setting.py)
# 增加到INSTALLED_APPS
INSTALLED_APPS = (
# other apps
"compressor",
)
# 增加Finders
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# other finders..
'compressor.finders.CompressorFinder',
)

# 设置默认参数
COMPRESS_ENABLED = True
COMPRESS_OFFLINE = True


# 在模板中使用
{% load staticfiles compress %}

{% compress css %}
<link rel="stylesheet" href="/static/css/one.css" type="text/css" charset="utf-8">
<style type="text/css">p { border:5px solid green;}</style>
<link rel="stylesheet" href="/static/css/two.css" type="text/css" charset="utf-8">
{% endcompress %}

{% compress js %}
<script src="/static/js/one.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">obj.value = "value";</script>
{% endcompress %}


遇到的问题

在使用virtualenv中执行时会报Import compressor模块错误,可能兼容性还有点问题

在实际环境中没有问题

部署

首先,确认在setting.py中加入了STATIC_ROOT并修改DEGUB=False

然后,执行以下命令:

python manage.py collectstatic
python manage.py compressor


最后使用gunicorn+nginx部署参考:django + gunicorn + nginx 部署
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息