Pycharm開發Django專案載入靜態檔案
阿新 • • 發佈:2021-10-17
載入靜態檔案
在一個網頁中,不僅僅只有一個html
骨架,還需要css
樣式檔案,js
執行檔案以及一些圖片等。因此在DTL
中載入靜態檔案是一個必須要解決的問題。在DTL
中,使用static
標籤來載入靜態檔案。要使用static
標籤,首先需要{% load static %}
。載入靜態檔案的步驟如下:
-
首先確保
django.contrib.staticfiles
已經新增到settings.INSTALLED_APPS
中。 -
確保在
settings.py
中設定了STATIC_URL
。 -
在已經安裝了的
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
,這樣就可以避免產生混淆。) -
如果有一些靜態檔案是不和任何
app
掛鉤的。那麼可以在settings.py
STATICFILES_DIRS
,以後DTL
就會在這個列表的路徑中查詢靜態檔案。比如可以設定為:STATICFILES_DIRS = [ os.path.join(BASE_DIR,"static") ]
-
在模版中使用
load
標籤載入static
標籤。比如要載入在專案的static
資料夾下的style.css
的檔案。那麼示例程式碼如下:{% load static %} <link rel="stylesheet" href="{% static 'style.css' %}">
-
如果不想每次在模版中載入靜態檔案都使用
load
載入static
settings.py
中的TEMPLATES/OPTIONS
新增'builtins':['django.templatetags.static']
,這樣以後在模版中就可以直接使用static
標籤,而不用手動的load
了。 -
如果沒有在
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)