我正在使用Oscar-Django e-commerce项目,我正在关注教程Frobshop
网站已启动并运行,但是,当我从管理信息中心添加产品并上传图片时,缩略图未加载,当我在客户视图中查看产品时,图片丢失了
这是我在settings.py文件中的配置:
STATIC_URL ='/ static /'
MEDIA_URL ='/ media /'
MEDIA_ROOT =位置(“公共/媒体”)
STATIC_ROOT = location('public / static')
当我从客户视图查看产品时,终端显示404 GET
的样子“GET /media/cache/45/ec/45ecfa8787510d3ed6997925b6e26ed7.jpg HTTP / 1.1”404 4880
当我进入网站的管理部分并尝试点击产品表中的图片时,它也会显示“找不到网页”,这次的网址是
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)), ]
我在Finder中看到此路径下的图片
/ frobshop / frobshop /公共/媒体/图像/产品/ 2017/09
任何帮助解决这个问题表示赞赏!
谢谢!
答案 0 :(得分:3)
您需要在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)
这仅限于settings.DEBUG==True
生产时,您希望使用nginx或同等产品为静态和媒体提供服务。
这不是奥斯卡文档中涵盖的内容,因为它是Django关注的问题,但应该提及它。