当使用前后端分离开发项目时,如果前端使用vue react等框架进行开发时,往往项目中的js文件很大,即使使用webpack打包之后,少则几百k多则几mb。如果不将数据进行压缩传输,将会大大增加用户加载页面的等待时间。同时在使用ajax交互数据的同时,json数据往往也会达到几百k。使用django可以轻松将通过接口请求的数据进行gzip压缩。大大提升用户的体验。
django配置gzip
要使通过django处理的请求都进行压缩,可以使用全局配置
MIDDLEWARE_CLASSES = (
'django.middleware.gzip.GZipMiddleware',
)
如果想控制某个接口进行压缩,可以使用gzip_page进行配置
from django.views.decorators.gzip import gzip_page
@gzip_page
def viewFunc(request):
return HttpResponse("hello"*100)
如果请求的数据不通过django来处理(nginx+uwsgi)那么就需要使用nginx将静态资源进行压缩。 不过django压缩的好处是可以直接压缩json数据。
nginx使用GZIP
https://www.jianshu.com/p/c5d1fc829855