一個站點通常需要保存額外的文件,比如圖片 css樣式文件 js腳本文件 ,在django中,傾向於將這些文件稱為 靜態文件。django提供了django.contrib.staticfiles 模塊來幫助我們方便的管理靜態文件。
配置靜態文件的兩種方式:
1 配置單獨app下的靜態文件,比如某個app下的單獨的圖片。
2 配置整個project下的靜態文件,適用於那些和單獨app關聯不大的文件,比如jquery bootstrap 等等
配置步驟:
1 首先,我們需要確認在settings.py文件中的INSTALLED_APPS變量中存在 django.contrib.staticfiles
1 INSTALLED_APPS = ( 2 'django.contrib.admin', 3 'django.contrib.auth', 4 'django.contrib.contenttypes', 5 'django.contrib.sessions', 6 'django.contrib.messages', 7 'django.contrib.staticfiles', 8 )
2.1 如果我們要配置單獨app下的靜態文件的話,執行此步驟。
在settings.py文件中定義 STATIC_URL 變量。
1 STATIC_URL = '/static/'
2.2 如果我們要配置整個project下的靜態文件的話,執行此步驟。
在settings.py文件中定義 STATICFILES_DIRS 變量
1 STATICFILES_DIRS = ( 2 os.path.join(BASE_DIR, "static"), # 首選project靜態文件搜尋路徑 3 '/var/www/static/', # 第二選project靜態文件搜尋路徑,還可以有第三選,第四選…… 4 )
3.1 如果我們要配置單獨app下的靜態文件的話,執行此步驟。
這時,我們需要在app中建立一個名為static 的文件夾。
3.2 如果我們要配置整個project下的靜態文件的話,執行此步驟。
我們需要在整個project 中建立一個 名為static的文件夾
4 當我們在模板中無論是使用硬鏈接 /static/myexample.jpg 還是使用 static 標簽 <img src="{% static "myexample.jpg" %}" /> 都會先訪問app下的static/文件夾下的myexample.jpg 文件,若app下的static文件夾中沒有該文件,則訪問project中的static/文件夾,查看是否有myexample.jpg文件,若有則返回,若沒有則去/var/www/static/中尋找。