图像未找到/正确加载 - 404

Lif*_*his 0 python django django-oscar

我正在使用Oscar-Django 电子商务项目,我正在关注教程Frobshop

该网站已启动并正在运行,但是,当我从管理仪表板添加产品并上传图片时,缩略图未加载,并且当我在客户视图中查看产品时,图片丢失了。

这是我在 settings.py 文件中的配置:

STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = location("public/media")
STATIC_ROOT = location('public/static')

当我从客户视图查看产品时,终端显示 404 GET

"GET /media/cache/45/ec/45ecfa8787510d3ed6997925b6e26ed7.jpg HTTP/1.1" 404 4880

这是它的样子客户视图 - 缺少图片

当我转到站点的管理部分并尝试单击产品表中的图片时,它也显示“找不到页面”,这次的 URL 是

http://127.0.0.1:8000/media/images/products/2017/09/hoodie1.jpeg

找不到网页

当我浏览到特定产品(仍在管理站点上)时,该产品的图像部分未显示缩略图,终端显示此内容

"GET /media/cache/cd/8a/cd8af791d513ec91a583b0733070d9a7.jpg HTTP/1.1" 404 4880

管理部分 - 产品缺少图片

这是来自 URLs.py 的模式

urlpatterns = [ url(r'^i18n/', include('django.conf.urls.i18n')),

# The Django admin is not officially supported; expect breakage.
# Nonetheless, it's often useful for debugging.
url(r'^admin/', include(admin.site.urls)),

url(r'', include(application.urls)), ]
Run Code Online (Sandbox Code Playgroud)

我在 Finder 中看到这条路径下的图片

/frobshop/frobshop/public/media/images/products/2017/09

感谢您对解决此问题的任何帮助!

谢谢!

小智 5

你需要在你的底部添加以下内容urls.py

from django.conf import settings
if settings.DEBUG:
    from django.conf.urls.static import static
    from django.contrib.staticfiles.urls import staticfiles_urlpatterns
    # Serve static and media files from development server
    urlpatterns += staticfiles_urlpatterns()
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Run Code Online (Sandbox Code Playgroud)

这仅限于settings.DEBUG==True在生产中您希望使用 nginx 或等效物提供静态和媒体服务。

这不是 Oscar 文档中涵盖的内容,因为它是 Django 级别的问题,但可能应该提及。