使用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 專案中,請按照以下步驟操作:
更新您的設定:
這將確保當 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中文網其他相關文章!