2016-04-06 2 views
0

Ive изучает Джанго и от того, что я прочитал СМИ и STATIC должен быть индивидуальный, так что я естьмедиа файлы, которые не отображаются Бинг

STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles') 
    STATIC_URL = '/static/' 

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

    # Extra places for collectstatic to find static files. 
    STATICFILES_DIRS = (
     os.path.join(PROJECT_ROOT, 'static'), 
     os.path.join(PROJECT_ROOT, 'media'), 
    ) 

У меня есть возможность создать пост с моего сайта, и когда я разрабатываю локально гиперссылка это

/media/None/earthquake.png 

из этого

{{post.image.url}} 

и я использую его как этот

<img src='{{post.image.url}}> 

, чтобы отобразить изображение

Документов Я прочитал я не использую статическим, чтобы получить картину.

это мой пост модель

def upload_location(instance, filename): 
    return "{}/{}".format(instance.id, filename) 


class Post(models.Model): 

    STATUS_CHOICES = (
     ('draft', 'Draft'), 
     ('published', 'Published'), 
    ) 
    title = models.CharField(max_length=250) 
    slug = models.SlugField(max_length=250, 
          unique_for_date='publish') 
    image = models.ImageField(upload_to=upload_location, 
           null=True, 
           blank=True, 
           height_field='height_field', 
           width_field='width_field') 
    height_field = models.IntegerField(default=0) 
    width_field = models.IntegerField(default=0) 
    author = models.ForeignKey(User, 
           related_name='blog_posts') 
    body = models.TextField() 
    publish = models.DateTimeField(default=timezone.now) 
    created = models.DateTimeField(auto_now_add=True) 
    updated = models.DateTimeField(auto_now=True) 
    status = models.CharField(max_length=10, 
           choices=STATUS_CHOICES, 
           default='draft') 
    video = models.BooleanField(default=False) 
    video_path = models.CharField(max_length=320, 
            null=True, 
            blank=True,) 

Я следую учебник, и я думаю, что функция upload_location может быть вопрос, хотя я могу ошибаться. Как я могу показать свои изображения на производстве? Я Whitenoise установлен, но в документации написано, чтобы служить мои изображения, как этот

{% load static %} 
<img src="{% static "images/hi.jpg" %}" alt="Hi!" /> 

поэтому я попробовал этот

<img src="{% static 'None/car.jpg' %}" alt="Hi!" width="100" height="100"/> 

это моя файловая структура

enter image description here

Как Я покажу свое изображение в обращении

также Примеры не показывать, как динамически отображать изображения. У каждого из моих сообщений будут свои фотографии. Это не работает

<img src="{% static '{{post.image.url'%}" alt="Hi!" width="100" height="100"/> 

ответ

1

Невозможно хранить и обслуживать загруженные пользователем носители таким образом на Heroku. Вместо того, чтобы хранить носители локально на диске, вам нужно будет хранить его в резервном сервисе, таком как Amazon S3. Посмотрите на пакет Django Storages, который обеспечивает хранилища для многих различных сервисов.

+0

Это просто героиня? Или все хосты одинаковы? А как насчет whitenoise – losee

+0

и еще одна вещь. Не делая ничего лишнего. Мне удалось отобразить мои изображения на героку. Затем внезапно после пробуждения моего приложения последнее изображение не показывалось. Затем позже все мои изображения были сломаны. Strange – losee

+0

Это проблема, которая затрагивает почти всех поставщиков услуг платформы, таких как сервис Heroku. Существуют и другие способы размещения вашего приложения, которое даст вам постоянную локальную файловую систему, но они не будут столь же просты в управлении и масштабировании, как Heroku. –

Смежные вопросы