使用Django怎么压缩静态文件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、网站空间、营销软件、网站建设、筠连网站维护、网站推广。django静态文件配置原理
静态文件配置就是为了让用户请求时django服务器能找到静态文件返回。
首先要理解几个概念:
媒体文件:用户上传的文件
静态文件:css,js,image等
开发环境:使用django内置服务器处理静态文件
生产环境:使用apache2/nginx服务器处理静态文件映射
所以在配置时要分清楚开发环境还是生产环境,这个后面会详细介绍。
下面先介绍一下服务器查找静态文件的原理,这样我们才能更好的配置。
引言
在网站开发阶段,对于静态资源文件比如JS,CSS等文件都是未经过压缩合并处理的,这对于访问量巨大的网站来说不仅浪费带宽,而且也会影响网站的访问速度。
django-compressor可以把js/css等静态文件压缩,这样不仅有利于减少网站的请求次数,还能节省网络带宽。
而这篇文章即是介绍使用如何使用Python的Django框架中的压缩组件django-compressor!
下面就介绍如何在Django中集成django-compressor!
安装django-compressor
安装很简单,pip安装下就可以了:
$ pip install django-compressor
然后在'setting'的INSTALLED_APPS中添加
INSTALLED_APPS = [ #others 'compressor' ]
setting配置
首先确保django.contrib.staticfiles
已经包含在INSTALLED_APPS中,django1.6及以上版本是默认包含该app在其中的.
指定STATIC_URL
STATIC_ROOT = os.path.join(SITE_ROOT, 'collectedstatic') # STATIC_URL是客户端访问静态资源的根路径配置 STATIC_URL = '/static/' STATICFILES = os.path.join(BASE_DIR, 'static')
配置STATICFILES_FINDERS
默认django会从每个app目录的static子目录下查找静态文件,因此通常情况下你都是将相关静态文件放在各自的app/static目录下。Django怎么知道从app/static目录查找静态文件呢?Django有个默认配置项STATICFILES_FINDERS:
STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', #other 'compressor.finders.CompressorFinder', )
添加django-compressor配置:
Django-Compressor开启与否取决于DEBUG参数,默认是COMPRESS_ENABLED 与 DEBUG 的值相反。因为 Django-Compressor 的功能本身是用在生产环境下项目发布前对静态文件压缩处理的。因此想在开发阶段 (DEBUG=True) 的时候做测试使用,需要手动设置 COMPRESS_ENABLED=True
COMPRESS_ENABLED = True COMPRESS_OFFLINE = True COMPRESS_CSS_FILTERS = [ #creates absolute urls from relative ones 'compressor.filters.css_default.CssAbsoluteFilter', #css minimizer 'compressor.filters.cssmin.CSSMinFilter' ] COMPRESS_JS_FILTERS = [ 'compressor.filters.jsmin.JSMinFilter' ]
使用
使用也很简单,模板文件中添加模板标签 {% load compress %}
下面分别是css和js的使用方式
{% load compress %} {% compress css %} {% endcompress %} {% compress js %} {% endcompress %}
接着先运行命令:
$ python manage.py collectstatic --noinput
所有静态资源都将拷贝到STATIC_ROOT指定的目录中。
然后运行命令:
$ python manage.py compress --force
这样就会把压缩后的文件放在 STATIC_ROOT
目录下面,大功告成!!
每次修改了js、css文件后,都需要重新加载最新的文件到 STATIC_ROOT 目录下去,因此需要重新运行命令:
$ python manage.py collectstatic --noinput $ python manage.py compress --force
关于使用Django怎么压缩静态文件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联成都网站设计公司行业资讯频道了解更多相关知识。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。