2017-07-27 4 views
0

autres humainsNginx, gunicorn, ubuntu 16.06 - images téléchargées ne pas afficher

Je suis sur cette question pendant deux jours et apprécierais vraiment un peu d'aide. J'ai donc déployé avec succès mon application et tout fonctionne bien y compris css et le javascript sauf pour cette petite chose qui je suis sûr est juste un petit correctif que je manque, résultant de mes images téléchargées ne s'affichent même pas que je vois la page "upload successful".

Mon modèle d'image

class Image(models.Model): 
    user = models.ForeignKey(settings.AUTH_USER_MODEL, 
         related_name='images_created') 
    title = models.CharField(max_length=2000) 
    slug = models.SlugField(max_length=200, 
         blank=True) 
    url = models.URLField() 
    image = models.ImageField(upload_to='/home/kingiyk/stylplus/media/') 
    description = models.TextField(blank=True, null=True) 
    created = models.DateField(auto_now_add=True, 
              db_index=True) 
    users_like = models.ManyToManyField(settings.AUTH_USER_MODEL, 
               related_name='images_liked', blank=True) 

    tags = TaggableManager() 

    class Meta: 
     ordering = ('-created',) 




    def __str__(self): 
     return self.title 


    def save(self, *args, **kwargs): 
     if not self.slug: 
      self.slug = slugify(self.title) 
      super(Image, self).save(*args, **kwargs) 

    def get_absolute_url(self): 
     return reverse('images:detail', args=[self.id, self.slug]) 

mon nginx conf

server { 
    listen 80; 
    server_name 67.207.87.22; 

    location = /favicon.ico { access_log off; log_not_found off; 

    } 

    location /static/ { 
     alias /home/kingiyk/stylplus/static; 
    } 

    location /media/ { 
     alias /home/kingiyk/stylplus/media; 
    } 

    location/{ 
     include proxy_params; 
     proxy_pass http://unix:/home/kingiyk/stylplus/stylplus.sock; 
    } 
} 

mes images téléchargées sont situées dans/home/kingiyk/stylplus/media/si atleast je sais qu'ils ont été sauvés.

Voici mon fichier de paramètres:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 





DEBUG = False 

ALLOWED_HOSTS = ['67.207.87.22', 'styllplus.com', 'www.styllplus.com'] 



ROOT_URLCONF = 'stylplus.urls' 



WSGI_APPLICATION = 'stylplus.wsgi.application' 









STATIC_URL = '/static/' 
STATIC_ROOT = '/home/kingiyk/stylplus/static/' 




from django.core.urlresolvers import reverse_lazy 

LOGIN_REDIRECT_URL = reverse_lazy('dashboard') 
LOGIN_URL = reverse_lazy('login') 
LOGOUT_URL = reverse_lazy('logout') 

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 



ABSOLUTE_URL_OVERRIDES = { 
    'auth.user': lambda u: reverse_lazy('user_detail', args=[u.username]) 
    } 

SITE_ID = 1 


DJANGO_MESSAGES_NOTIFY = False 

et voici ma page de téléchargement html qui est censé afficher l'image

{% extends "base.html" %} 

{% load staticfiles %} 


{% block title %}{{ user.username }}{% endblock %} 
{% block content %} 
{% load thumbnail %} 
<div id="lonely"> 
{% thumbnail image.user.profile.photo "40" as in %} 
    <a href="{{ image.user.get_absolute_url }}"> 
     <img src="{{ in.url }}" class="gametime"></a> 
     {% endthumbnail %} 
<a href="{{ image.user.get_absolute_url }}" class="time">{{ image.user.username }}</a> 

<div id="details"> 
{% thumbnail image.image "551" as im %} 

    <a href="{{ image.image.url }}"> 
     <img src="{{ im.url }}" alt="{{ image.title }}"class="image-detail"> 
    </a> 

{% endthumbnail %} 

{% with total_likes=image.users_like.count users_like=image.users_like.all %} 
    <div class="image-info"> 
    <div> 
     <span class="count"> 
      <span class="total">{{ total_likes }}</span> 
      like{{ total_likes|pluralize }} 
     </span> 
     {% with comments.count as total_comments %} 

{{ total_comments }} comment{{ total_comments|pluralize }} 

{% endwith %} 

{% if request.user not in users_like%} Comme {% else%} Contrairement {% endif%}

</div> 
    {{ image.title|linebreaks }} 
</div> 

<div id="my-chart"></div> 
<div class="image-likes"> 
    Liked by 
    {% for user in image.users_like.all %} 
     <div> 
      {% thumbnail user.profile.photo "30" as in %} 
      <img src="{{ in.url }}" class="gametime"> 
      {% endthumbnail %} 
      <a href="{{ user.get_absolute_url }}">{{ user.username }} 

     </div> 
    {% empty %} 

    {% endfor %} 
</div> 
{% endwith %} 




{% for comment in comments %} 
<div class="image-info"> 
<p class="info"> 


    <a href="{{ comment.user.get_absolute_url }}" class="mine">{{  

    comment.user }}</a> {{ comment.comment }} 

</p> 

Chaque chose othetr fonctionne très bien, sauf pour les images ne sont pas visibles je ne vois pas ce que le bug est. Je vous remercie de votre temps

Répondre

1

vous devez ajouter url média et la racine de dire django où chercher les médias si un fichier multimédia va être affiché

MEDIA_URL = '/media/' 
MEDIA_ROOT = os.path.join(BASE_DIR,'media') 

ajouter ce 2 lignes dans le settings.py

adn si vous avez ajouté STATIC_URL et STATIC_ROOT dans le urls.py principal, puis ajouter MEDIA_URL et MEDIA_ROOT trop statique.

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 
urlpatterns += static(settings.MEDIA_URL , document_root=settings.MEDIA_ROOT) 

ajouter ces lignes à votre urls.py

+0

de django.conf.urls importer comprennent, url par admin import django.contrib de django.conf paramètres d'importation de django.conf.urls. import statique statique de django.conf.urls modèles d'importation de RedirectView d'importation django.views.generic admin.autodiscover() de django.shortcuts importer rendre urlpatterns = [url (r^admin/', comprennent (admin.site.urls)), url (r '^ compte /', include ('account.urls')), url (r '^ images /', include ('images.urls', namespace = 'images')), url (r '^ comments /', include ('django_comments.urls ')), ] voici mon fichier urls.py. pourriez-vous clarifier plus sur le conf. urls.py –

+0

après avoir ajouté ces lignes dans le fichier de paramètres, doesnt ça marche ?? – Exprator

+0

il ne s'affiche toujours pas. De plus quand j'entre dans python manage, la commande py collectstatic, les fichiers css, js et certains fichiers png sont collectés et stockés sur/home/kingiyk/stylplus/static mais pas mes fichiers téléchargés (surtout .jpg). avez-vous une idée de pourquoi c'est? Je devine que cela pourrait être la racine de mon problème. –