亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法訪問 django 模板中的媒體文件

無法訪問 django 模板中的媒體文件

德瑪西亞99 2023-10-26 16:52:42
我正在嘗試將一組文件手動存儲在媒體文件夾中,并通過模板中的路徑訪問它們。這是我的媒體設置MEDIA_URL="/media/"MEDIA_ROOT=os.path.join(BASE_DIR,"media")這是我的項目網址urlpatterns = [    path('admin/', admin.site.urls),    path('',include('books.urls')),]+static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)這是我的模板代碼<div class="category-img">                    <img src="/media/logo.png"  alt="">                </div>并且沒有顯示圖像。Media 文件夾中有 logo.png 文件。我收到以下錯誤。Internal Server Error: /media/bordered.jpg/Traceback (most recent call last):  File "C:\Users\Sriram\anaconda3\lib\site-packages\django\core\handlers\exception.py", line 47, in inner    response = get_response(request)  File "C:\Users\Sriram\anaconda3\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response    response = wrapped_callback(request, *callback_args, **callback_kwargs)  File "C:\Users\Sriram\Desktop\books_site\books\views.py", line 42, in bookinfo    book["description"]=descriptions[zonar][books[zonar].index(book_name)]KeyError: 'media'
查看完整描述

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 。


查看完整回答
反對 回復 2023-10-26
?
楊魅力

TA貢獻1811條經驗 獲得超6個贊

媒體文件是通過數據庫添加的文件。對于不改變的文件使用靜態。我也不明白如果有PDF文件會有什么問題。為什么不能把它放在靜態中?

但無論如何,你的設置沒有問題。問題出在bookinfo中的一個函數中views.py。它說存在 a?KeyError,這意味著您正在訪問字典中不存在的內容。我的猜測是zonar設置為"media"books[zonar].index(book_name)結果為"media"。更正該錯誤后,媒體文件就應該可以正常使用了。


查看完整回答
反對 回復 2023-10-26
?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

在模板中,要設置圖像外觀的位置使用代碼

<img src="{% get_media_prefix %}{{uploaded_file}}" alt="File 2">

uploaded_file圖像文件的名稱在哪里。這是假設您的文件上傳到根媒體文件夾中。


查看完整回答
反對 回復 2023-10-26
?
富國滬深

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>


查看完整回答
反對 回復 2023-10-26
  • 4 回答
  • 0 關注
  • 240 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號