在django中处理和压缩静态文件
2016-12-27 17:42
513 查看
通常,对于一个页面请求来说,要经过很多步骤,每个步骤都会增加页面加载的负担,为了减少加载的时间和提高性能,通常要对静态文件进行必要的优化。
本文主要以django为基础,介绍django下的基本静态优化和部署方法,包括以下内容
1. Hash静态文件
2. Cache静态文件
3. 压缩静态文件
当进行部署时,Debug=True,执行python manage.py collectstatic 就会自动在生成hash命名的静态文件在STATIC_ROOT/CACHE/下面
在实际环境中没有问题
然后,执行以下命令:
最后使用gunicorn+nginx部署参考:django + gunicorn + nginx 部署
本文主要以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 部署
相关文章推荐
- 使用Django来处理对于静态文件的请求
- Django项目中静态文件的处理方法
- 使用Django来处理对于静态文件的请求
- Django中,图片显示问题--Django中静态文件处理方法指南
- Django静态文件处理【开发环境】
- django1.4 关于处理静态文件的问题
- 用Aapache处理Django的静态文件
- Django对静态文件的处理——部署阶段
- django static 静态文件(css,js,image)处理机制
- Django对静态文件的处理——部署阶段
- django 静态文件的处理 DEBUG False 页面变乱
- BAE下部署django之处理静态文件
- [Django]APP级别的静态文件处理
- Django对静态文件的处理——部署阶段
- Django 静态文件处理 三部曲
- Django静态文件处理总结
- Django对静态文件的处理——开发阶段
- Django对静态文件的处理——部署阶段
- 让Nginx处理Django的静态文件
- 使用Django来处理对于静态文件的请求