django開發系列:加載靜態文件

django開發系列:加載靜態文件

加載靜態文件:

在一個網頁中,不僅僅只有一個html骨架,還需要css樣式文件,js執行文件以及一些圖片等。因此在DTL中加載靜態文件是一個必須要解決的問題。在DTL中,使用static標籤來加載靜態文件。要使用static標籤,首先需要{% load static %}。加載靜態文件的步驟如下:

  1. 首先確保django.contrib.staticfiles已經添加到settings.INSTALLED_APPS中。

  2. 確保在settings.py中設置了STATIC_URL

  3. 在已經安裝了的app下創建一個文件夾叫做static,然後再在這個static文件夾下創建一個當前app的名字的文件夾,再把靜態文件放到這個文件夾下。例如你的app叫做book,有一個靜態文件叫做zhiliao.jpg,那麼路徑爲book/static/book/zhiliao.jpg。(爲什麼在app下創建一個static文件夾,還需要在這個static下創建一個同app名字的文件夾呢?原因是如果直接把靜態文件放在static文件夾下,那麼在模版加載靜態文件的時候就是使用zhiliao.jpg,如果在多個app之間有同名的靜態文件,這時候可能就會產生混淆。而在static文件夾下加了一個同名app文件夾,在模版中加載的時候就是使用app/zhiliao.jpg,這樣就可以避免產生混淆。)

  4. 如果有一些靜態文件是不和任何app掛鉤的。那麼可以在settings.py中添加STATICFILES_DIRS,以後DTL就會在這個列表的路徑中查找靜態文件。比如可以設置爲:

STATICFILES_DIRS = [
os.path.join(BASE_DIR,"static")
]
  1. 在模版中使用load標籤加載static標籤。比如要加載在項目的static文件夾下的style.css的文件。那麼示例代碼如下:
{% load static %}
<link rel="stylesheet" href="{% static 'style.css' %}">
  1. 如果不想每次在模版中加載靜態文件都使用load加載static標籤,那麼可以在settings.py中的TEMPLATES/OPTIONS添加'builtins':['django.templatetags.static'],這樣以後在模版中就可以直接使用static標籤,而不用手動的load了。

  2. 如果沒有在settings.INSTALLED_APPS中添加django.contrib.staticfiles。那麼我們就需要手動的將請求靜態文件的url與靜態文件的路徑進行映射了。示例代碼如下:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
# 其他的url映射
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章