MEDIA_URL 및 MEDIA_ROOT를 사용한 Django 미디어 파일 제공 문제 해결
Django 관리 인터페이스를 통해 이미지를 업로드하고 URL을 통해 액세스하려고 할 때 또는 프런트엔드에서 설정이 적절하지 않으면 실망스러운 404 오류가 발생할 수 있습니다.
MEDIA_ROOT 및 MEDIA_URL 설정
업로드된 미디어 파일을 저장하기 위해 Django는 MEDIA_ROOT라는 두 가지 설정을 사용합니다. 이 설정은 파일이 저장될 실제 디렉터리의 경로를 지정합니다. 웹에서 파일에 액세스하는 데 사용되는 URL 접두어인 MEDIA_URL이 저장됩니다.
MEDIA_ROOT를 /home/dan/mysite/media/로 설정하고 MEDIA_URL을 /media/로 설정한 경우 모든 것이 올바르게 설정된 것처럼 보일 수 있습니다. 그러나 이러한 파일을 제공하도록 URL 패턴을 구성할 때까지는 업로드된 파일에 액세스할 수 없습니다.
개발 중인 정적 파일 제공
다음을 사용하여 로컬에서 개발하는 경우 Django에서는 이미지와 같은 정적 파일을 제공하는 것이 필수적입니다. 그러나 프로덕션에서는 일반적으로 정적 파일 제공을 처리하도록 웹 서버(예: Apache 또는 Nginx)를 구성하려고 합니다.
개발을 위해 Django는 개발을 위해 사용할 수 있는 django.views.static.serve 함수를 제공합니다. 지정된 디렉터리의 파일을 제공합니다. 이를 Django 프로젝트에 통합하려면 다음 단계를 따르세요.
설정을 업데이트하세요.
from django.conf import settings if settings.DEBUG: # static files (images, css, javascript, etc.) urlpatterns += patterns('', (r'^media/(?P.*)$', 'django.views.static.serve', { 'document_root': settings.MEDIA_ROOT}))
이렇게 하면 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!