沒想到寫著寫著就來到第18天了,我們的Template也會在今天告一個段落,在Template的最後一天我們要談談如何將靜態文件呈現在Template上。
什麼是靜態文件呢?
像是圖片、JavaScript和CSS都屬於靜態文件。
在Django中可以利用django.contrib.staticfiles 來管理它們。
首先我們要先在setting.py中
添加'django.contrib.staticfiles'
在4.06版裡應該是已經有幫你設定好了,不過還是要確定一下。
接著在往下,找到STATIC_URL,也就是我們靜態文件存放的地方,我們把它設為'static/'。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'Django_app',
...
STATIC_URL = 'static/'
]
接著我們再到Django_app裡新建一個資料夾為static,並在裡面在新建一個你app名稱的資料夾,最後我們隨便找一張圖來示範,把圖丟到這個資料夾裡。
在這裡我們用blog來示範,幫我們的blog添加圖片,我們會先在開頭{% load static %},接著創建一個標籤,裡面使用的方式會是,他就會去找你的圖片並顯示出來!
{% extends "base.html" %}
{% load static %}
{% block title %}My amazing blog{% endblock %}
{% block content %}
<h1>Blog</h1>
<img src = "{% static 'Django_app/picture.png' %}">
{% endblock %}
在這裡有遇到一個問題,就是會一直404接著圖呈現就會長這樣。
後來有查了幾個可能的解決方法,一個是重新runserver,不過我試了沒有用,後來在setting.py中把DEBUG改成TRUE,就可以了,大家如果讀不出圖片可以試試這兩個方法!
這樣就完成囉~ 是不是很簡單呢?
那我們就明天見囉!
https://docs.djangoproject.com/en/4.1/howto/static-files/