首页 > 解决方案 > django 媒体图像不会显示

问题描述

我在服务器上部署了一个 Django 项目。该项目有一个博客应用程序,您可以在其中从管理页面添加帖子。每个帖子都有一些段落、标题和图像。帖子创建得很完美,但有时当我重新访问该网站时,我上传的图片不会显示。

我发现如果我通过按 ctrl+f5 清除浏览器的缓存,就会显示图像。清除缓存后一切恢复正常。但这不行,很明显,我不能告诉每个用户清除他们的浏览器缓存。

设置.py

STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]


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

我在我的主要 urls.py 中添加了这一行:

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

这是模板:

{% for post in posts %}
<div class="container-fluid blog-main mb-5">
    <a href="{% url 'news-anjoman-detail' post.slug %}">
        <div class="row">
            <div class="col-lg-5 pt-5 pb-3 my-5">
                <h5>{{ post.title | persianize_digits }}</h5>
                <p>{{ post.summ | persianize_digits }} </p>
                <hr>
                <small>{{ post.published|jformat:"%d %B %Y" | persianize_digits | custom_dates }} | </small>
                <small>
                    {% for tag in post.tags.all %}
                    {{ tag.name }}
                    {% endfor %}
                </small> 
                <br>
            </div>
            <div class="col-lg-7">
                <img style="max-height: 400px; object-fit: cover;" src="{{ post.image.url }}" alt="">
            </div>
        </div>
    </a>
</div>
{% endfor %}

标签: djangodjango-media

解决方案


推荐阅读