国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django壓縮靜態文件的實現方法詳析

2020-01-04 14:39:10
字體:
來源:轉載
供稿:網友

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 = TrueCOMPRESS_OFFLINE = TrueCOMPRESS_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']

使用

使用也很簡單,模板文件中添加模板標簽 <font color="red">{% load compress %}</font>

下面分別是css和js的使用方式

{% load compress %}{% compress css %}<link rel='stylesheet' href='{% static 'blog/css/style.css' %}' type='text/css'/>{% endcompress %}{% compress js %}<script type="text/javascript" src="{% static 'blog/js/jquery-3.1.1.js' %}"></script>{% endcompress %}

接著先運行命令:

$ python manage.py collectstatic --noinput

所有靜態資源都將拷貝到STATIC_ROOT指定的目錄中。

然后運行命令:

$ python manage.py compress --force

這樣就會把壓縮后的文件放在 <font color="red">STATIC_ROOT</font> 目錄下面,大功告成!!

每次修改了js、css文件后,都需要重新加載最新的文件到 <font color="red">STATIC_ROOT</font> 目錄下去,因此需要重新運行命令:

$ python manage.py collectstatic --noinput$ python manage.py compress --force

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中西区| 灵丘县| 郑州市| 井冈山市| 肥西县| 石河子市| 伊吾县| 衢州市| SHOW| 远安县| 九江县| 太谷县| 潮州市| 萨嘎县| 定兴县| 仁怀市| 辉县市| 什邡市| 屏东县| 黑山县| 资中县| 济源市| 莆田市| 孝昌县| 襄城县| 错那县| 东至县| 上高县| 聂荣县| 甘德县| 静海县| 木兰县| 烟台市| 罗平县| 蓬溪县| 哈尔滨市| 平湖市| 天峻县| 临海市| 大田县| 华亭县|