我正在用Django开发一个网站,我在我的项目中有很多图片,从管理面板上传,并保存在我为这些上传单独创建的媒体文件夹中,它工作得很好,我想在几个月内确切的方式,突然他们只是没有加载,得到404为他们所有人,没有任何变化的项目,他们只是没有加载。我的媒体路径Settings.py:
MEDIA_URL = 'media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
我已将此添加到应用程序的url .py末尾:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
就像我说的,它工作了很长时间,突然发生了这个
编辑:我刚刚发现,这是发生当我使用重定向功能在我的一个视图
另一种方法是:
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
# other URLs ...
]
# If DEBUG=True in the settings file
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
因此,如果settings.py
文件中的DEBUG=True
,我们将static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
添加到urlpatterns
。这在某种意义上提供了更好的管理。
我有同样的问题,这有助于我:
将此添加到url .py中的url模式列表中:
from django.views.static import serve
from django.conf import settings
from django.conf.urls import url
urlpatterns = [
url(r'^media/(?P<path>.*)$', serve,{'document_root': settings.MEDIA_ROOT}),
# YOUR URLS ARE HERE
]
当然要留在Debug=True在settings.py.