除了由服務器生成的HTML文件外,網頁應用一般需要提供其它必要的文件 —— 比如圖片文件、JavaScript腳本和CSS樣式表 —— 來為用戶呈現出一個完整的網站。 在Django中,我們將這些文件稱為“靜態文件”。
對於小型項目,這不是個大問題,因為你可以將它們放在你的網頁服務器可以訪問到的地方。 然而,在大一點的項目中 —— 尤其是那些由多個應用組成的項目 —— 處理每個應用提供的多個靜態文件集合開始變得很難。
這正是django.contrib.staticfiles的用途:它收集每個應用(和任何你指定的地方)的靜態文件到一個單獨的位置,這個位置在線上可以很容易維護。
1、新建目錄
根目錄下新建文件夾 static
目錄結構如下:
static css style.css images 1.jpg js main.js
2、修改Django相關文件
#setting.py 增加以下配置 STATIC_URL = '/static/' HERE=os.path.dirname(os.path.dirname(__file__)) STATIC_ROOT =os.path.join( HERE , 'static').replace('\\','/') STATICFILES_DIRS = ( ("images", os.path.join(STATIC_ROOT,'images').replace('\\','/')), ("css", os.path.join(STATIC_ROOT,'css').replace('\\','/')), ("js", os.path.join(STATIC_ROOT,'js').replace('\\','/')), ) #urls.py 增加以下配置 urlpatterns += static(settings.STATIC_URL, document_root = settings.STATIC_ROOT )
3、調用靜態文件
{% load staticfiles %} #必須 <link rel="stylesheet" type="text/css" href="{% static 'css/main.css' %}" /> <script src="{% static 'js/main.js' %}" type="text/javascript"></script> <img src="{% static 'images/1.jpg' %}" width="100px">