Django 2媒体返回错误404(顶级媒体文件夹)

时间:2019-04-07 11:05:08

标签: django django-2.1

使用32位Python 3.7.2,Win10本地主机,没有nginx等运行Django 2.1.5。克隆了仓库https://github.com/axelpale/minimal-django-file-upload-example.git

可以上传文件,并且它们在db中显示为url链接,并在页面上显示为列表项,但是图像/文件不显示在页面上,并在控制台中返回404。

返回错误: GET http://127.0.0.1:8001/media/documents/2019/04/07/image.jpg 404 (Not Found) 我可以在资源管理器中的那个位置看到文件。

代码与仓库完全相同,并添加以下内容:

list.html第14行

<li><img src="{{ document.docfile.url }}" height="60px"></li>

urls.py

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + [ path('', views.list, name='list')]  

我已尽可能地遵循文档,并查看了其他SO帖子,这些帖子建议应该首先使用静态模式。

应注意,媒体文件夹位于目录的顶层。

for_django_2-0

-myproject

-myproject

-媒体

-myapp

也: DEBUG = True 尝试运行: python manage.py runserver 8001 --insecurepython manage.py runserver 8001

任何帮助将不胜感激。

谢谢,乔恩

1 个答案:

答案 0 :(得分:0)

要回答我自己的问题,在深入探讨另一个主题之后,我发现了这个有用的视频。

https://www.youtube.com/watch?v=PIvlcmnayOE&t=55s

视频介绍了我在其他教程中错过的内容。您的静态网址路径必须位于根项目urls.py中,而不应位于应用程序urls.py

myproject / urls.py

from django.contrib import admin
from django.urls import path, include

from django.conf import settings
from django.conf.urls.static import static

urlpatterns =  static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + [
    path('admin/', admin.site.urls),
    path('myapp/', include('myapp.urls'))

这现在有效。

相关问题