首頁 > 後端開發 > Python教學 > 即使設定了 MEDIA_ROOT 和 MEDIA_URL,為什麼我在嘗試存取上傳的 Django 媒體檔案時仍會收到 404 錯誤?

即使設定了 MEDIA_ROOT 和 MEDIA_URL,為什麼我在嘗試存取上傳的 Django 媒體檔案時仍會收到 404 錯誤?

Patricia Arquette
發布: 2024-11-08 09:06:01
原創
684 人瀏覽過

Why am I getting a 404 error when trying to access my uploaded Django media files even though MEDIA_ROOT and MEDIA_URL are set?

使用MEDIA_URL 和MEDIA_ROOT 解決Django 媒體檔案服務問題

嘗試透過Django 管理介面上傳映像並透過URL 存取它時或在前端存取它時或在前端存取它。 ,如果您的設定配置不正確,您可能會遇到令人沮喪的404 錯誤。

MEDIA_ROOT 和MEDIA_URL 設定

為了儲存上傳的媒體文件,Django 使用兩個設定:MEDIA_ROOT,它指定儲存檔案的實體目錄的路徑,以及MEDIA_URL,它是用於存取網路上的文件的URL 前綴。

在您的情況下,您有將 MEDIA_ROOT 設定為 /home/dan/mysite/media/ 並將 MEDIA_URL 設定為 /media/,看起來一切都設定正確。但是,在配置 URL 模式來提供這些文件之前,您仍然無法存取上傳的文件。

在開發中提供靜態檔案

本地開發時Django,提供像圖像這樣的靜態檔案是必不可少的。然而,在生產中,您通常需要設定 Web 伺服器(例如 Apache 或 Nginx)來處理靜態檔案服務。

對於開發,Django 提供了可以使用的 django.views.static.serve 函數提供指定目錄中的檔案。要將其整合到您的Django 專案中,請按照以下步驟操作:

  1. 更新您的設定:

    • 對於Django >= 1.7,將urlpatterns = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 加入您的urls.py 檔案中。
    • 對於 Django

這將確保當 DEBUG 為 True 時(通常是本地開發期間的情況),Django 將從 MEDIA_ROOT 目錄提供靜態檔案。

存取圖片

正確配置 URL 模式後,您現在可以使用 URL 前綴 MEDIA_URL 後接檔案路徑來存取上傳的映像。在您的情況下,您可以透過 http://127.0.0.1:8000/media/images/myimage.png 存取該映像。

以上是即使設定了 MEDIA_ROOT 和 MEDIA_URL,為什麼我在嘗試存取上傳的 Django 媒體檔案時仍會收到 404 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板