使用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 --insecure
和
python manage.py runserver 8001
任何帮助将不胜感激。
谢谢,乔恩
答案 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'))
这现在有效。