iT邦幫忙

2022 iThome 鐵人賽

DAY 18
0
自我挑戰組

從0 到 50 初探 如何使用Django 架構出一個網站系列 第 18

Day-18- Template -靜態文件的呈現

  • 分享至 

  • xImage
  •  

前言

沒想到寫著寫著就來到第18天了,我們的Template也會在今天告一個段落,在Template的最後一天我們要談談如何將靜態文件呈現在Template上。

靜態文件

什麼是靜態文件呢?
像是圖片、JavaScript和CSS都屬於靜態文件。
在Django中可以利用django.contrib.staticfiles 來管理它們。

用法

首先我們要先在setting.py中
添加'django.contrib.staticfiles'
在4.06版裡應該是已經有幫你設定好了,不過還是要確定一下。
接著在往下,找到STATIC_URL,也就是我們靜態文件存放的地方,我們把它設為'static/'。

setting.py

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名稱的資料夾,最後我們隨便找一張圖來示範,把圖丟到這個資料夾裡。

資料夾結構

https://ithelp.ithome.com.tw/upload/images/20220926/20150927kAH8l25vzv.png

blog.html

在這裡我們用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接著圖呈現就會長這樣。
https://ithelp.ithome.com.tw/upload/images/20220926/201509275wqvwdqZ7Q.png

後來有查了幾個可能的解決方法,一個是重新runserver,不過我試了沒有用,後來在setting.py中把DEBUG改成TRUE,就可以了,大家如果讀不出圖片可以試試這兩個方法!

呈現畫面

https://ithelp.ithome.com.tw/upload/images/20220926/20150927W0nyT6NgAa.png

這樣就完成囉~ 是不是很簡單呢?
那我們就明天見囉!

參考資料&推薦閱讀

https://docs.djangoproject.com/en/4.1/howto/static-files/


上一篇
Day-17 - 客製化404 Template
下一篇
Day-19 - Model是啥米
系列文
從0 到 50 初探 如何使用Django 架構出一個網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言