4 回答

TA貢獻1906條經驗 獲得超10個贊
你需要使用{% get_media_prefix %}標簽。
您必須在設置中設置 和 并將其添加MEDIA_ROOT到您的 urls.py 中,如本文檔中所示。并像這樣更改您的模板代碼:MEDIA_URLMEDIA_URL
{% load static %}
....
<div class="category-img"><img src="{% get_media_prefix %}logo.png" alt=""></div>
此標簽正確加載 Django 設置中媒體文件路徑設置的 URL。如果您想在服務器中部署項目或使用掛載外部服務器來加載媒體,只需更改 django 項目中的媒體設置。
在網站中保存要用作靜態的圖像的最佳做法,將此類文件保存在靜態文件夾中,并使用 django 項目中的媒體文件夾將所有上傳的文件保存在 Web 應用程序中。
{{object.field.url}}并通過將 Django 模型對象傳遞給模板來加載它們,并使用Django 模板中的標簽加載 URL 。

TA貢獻1811條經驗 獲得超6個贊
媒體文件是通過數據庫添加的文件。對于不改變的文件使用靜態。我也不明白如果有PDF文件會有什么問題。為什么不能把它放在靜態中?
但無論如何,你的設置沒有問題。問題出在bookinfo
中的一個函數中views.py
。它說存在 a?KeyError
,這意味著您正在訪問字典中不存在的內容。我的猜測是zonar
設置為"media"
或books[zonar].index(book_name)
結果為"media"
。更正該錯誤后,媒體文件就應該可以正常使用了。

TA貢獻1820條經驗 獲得超10個贊
在模板中,要設置圖像外觀的位置使用代碼
<img src="{% get_media_prefix %}{{uploaded_file}}" alt="File 2">
uploaded_file
圖像文件的名稱在哪里。這是假設您的文件上傳到根媒體文件夾中。

TA貢獻1790條經驗 獲得超9個贊
嘗試使用靜態:
STATIC_URL="/static/"
STATIC_ROOT=os.path.join(BASE_DIR,"static/")
并將圖像文件存儲在 static 文件夾中,它應該位于 django 應用程序文件夾內。
--static/
--img/
--logo.png
{% load static %}
<div class="category-img">
<img src="{% static 'img/logo.png' %}" alt="">
</div>
添加回答
舉報