2017-07-27 48 views
0

同胞人nginx,gunicorn,ubuntu 16.06 - 上傳的圖片不顯示

我一直在這個問題上幾天,真的很感謝一些幫助。所以我成功地部署了我的應用程序,一切正常,包括CSS和JavaScript,除了這個小東西,我確定只是一個小小的修復我缺少,導致我上傳的圖像甚至沒有顯示,即使我看到「上傳成功」頁面。

我的圖像模型

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]) 

我的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; 
    } 
} 

我上傳的圖片都位於在/ home/kingiyk/stylplus /媒體/所以至少我知道他們都得救了。

這裏是我的設置文件:

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 

這裏是應該顯示的圖像

{% 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 %} 

{%如果我的HTML上傳頁面request.user不在users_like%} 像 {%其他%} 不像 {%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> 

每othetr事情的作品就好了,除了不可見的圖像 我看不出到底是什麼錯誤。我會感激你的時間

回答

1

你需要添加媒體URL和根告訴Django哪裏找媒體,如果媒體文件將被顯示

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

settings.py添加此2號線

ADN如果您在主urls.py添加STATIC_URLSTATIC_ROOT然後加入MEDIA_URLMEDIA_ROOT太靜態。

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

這些線路從django.conf導入設置 從django.conf.urls添加到您的urls.py

+0

從django.conf.urls導入包括從django.contrib中導入管理 網址 。靜態導入靜態 從django.conf.urls進口圖案 從django.views.generic進口RedirectView的 admin.autodiscover() 從django.shortcuts導入渲染 urlpatterns的= [URL(R '^管理員/',包括( admin.site.urls)), URL(R '^帳戶/',包括( 'account.urls')), URL(R '^圖像/',包括( 'images.urls',命名空間= '圖像')), URL(R '^ comments /',包括('django_comments。)), ]這裏是我的urls.py文件。你能否在urls.py conf中說明更多。 –

+0

在設置文件中添加這行後,它不工作? – Exprator

+0

它仍然不顯示。加上當我進入python管理,py pystaticstatic命令,css,js文件和一些png文件被收集並存儲在/ home/kingiyk/stylplus/static但我上傳的文件(主要是.jpg)沒有。你知道這是爲什麼嗎?我猜這可能是我的問題的根源。 –