2017-09-16 9 views
0

J'utilise le projet Oscar-Django e-commerce, et je suivais le tutoriel Frobshopimages ne sont pas trouvées/chargement correctement - 404

Le site est opérationnel, mais, quand j'ajoute un produit -De l'dashboard- admin et télécharger une image, la vignette ne se charge pas, et quand je regarde le produit sur la vue du client, l'image est manquante.

Voici ma configuration dans le fichier settings.py:

STATIC_URL = '/ statique /'
MEDIA_URL = '/ media /'
MEDIA_ROOT = emplacement ("public/médias")
STATIC_ROOT = emplacement ('public/statique')

Quand je considère le produit du point de vue du client, le terminal affiche 404 GET

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

voici à quoi il ressemble Customer View - missing picture

Quand je vais à la section d'administration du le site et essayez de cliquer sur l'image de la table des produits, il montre « page non trouvée » aussi bien, l'URL est cette fois

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

Page not found

Lorsque je navigue sur le produit spécifique (toujours sur le site d'administration), la section d'image de ce produit, la vignette n'est pas affiché et le terminal montre ce

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

Admin section - product missing picture

ici sont les modèles de URLs.py

urlpatterns = [ URL (r '^ i18n /', inclure ('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)), ] 

I voir l'image sous ce chemin dans le Finder

/frobshop/frobshop/public/médias/images/products/2017/09

Toute aide pour comprendre cela est appréciée!

Merci!

Répondre

2

Vous devrez ajouter ce qui suit au bas de votre 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) 

Il est limité: quand settings.DEBUG==True comme dans la production, vous voulez servir statique et les médias en utilisant nginx ou un équivalent.

Ceci n'est pas quelque chose couvert dans la documentation d'Oscar car c'est un problème de niveau Django, mais il devrait probablement être mentionné.

+0

Cela a fonctionné, merci! –