【问题标题】:Django static file images not displayed on IBM Cloud FoundryDjango 静态文件图像未显示在 IBM Cloud Foundry 上
【发布时间】:2022-02-18 02:18:59
【问题描述】:

我已经阅读了一些其他主题,用谷歌搜索,并尝试阅读文档,但找不到我要查找的内容。我是新来的 Django,仅供参考。同样的代码在我的本地和 pythonanywhere.com 上都可以正常运行

我的网络应用显示“兴趣”、“图片”和“网址”列表。 “图像”实际上是本地图像文件的路径。该应用程序可以很好地部署到 IBM Cloud Foundry 并且可以正常工作,只是静态文件中的图像不只显示损坏的图像图标。

部署时,我在日志中看到消息“153 个静态文件复制到 '/tmp/app/static'”,这让我相信 collectstatic 运行没有问题。

来自models.py:

class Interest(models.Model):
    interest = models.CharField(max_length=100)
    **image = models.ImageField(upload_to='interest/images')**
    url = models.URLField(blank=True)

    def __str__(self):
        return self.interest

来自 html 模板:

{% extends 'portfolio/base.html' %}

{% block about-class %} about-color-class {% endblock %}

{% block content %}

{% load static %}

<!-- Interests -->

<section class="interests">
    <div class="container">
        <div class="row">
            <h1>Some of my interests...</h1>
        </div>
        <div class="row-images">
            {% for interest in interests %}
            <div class="col-lg-1 col-md-1 col-xs-1">
                <a href="{{ interest.url }}"><**img src="{{ interest.image.url }}" alt=""**></a>
            </div>
            {% endfor %}
        </div>
    </div>
</section>

<!-- Interests End -->

来自settings.py:

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

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

所以,我不确定发生了什么。任何建议表示赞赏。谢谢。

【问题讨论】:

    标签: django ibm-cloud static-files


    【解决方案1】:

    我假设您在服务器上部署时设置了 debug=False。 问题是当您将 Django 退出调试模式时,它无法提供文件/媒体,这样做也不是一个好习惯。相反,您应该使用像 Nginx 或 apache 这样的网络服务器来提供静态和媒体文件。

    虽然有解决方法:LINK

    但我不建议使用它。相反,请考虑使用网络服务器提供文件。

    【讨论】:

    • 是的,我确实有 debug=False。同意使用网络服务器似乎是我在其他地方读到的建议。我还在想我可以将图像作为 blob 存储在数据库中,因为没有那么多图像而且它们很小。
    • 是的,您也可以这样做,但按原样存储文件更容易。如果您对如何部署感到困惑,请查看“使用 nginx 对 django 应用程序进行 dockerizing”
    • 是的,我开始阅读相关内容并将进一步调查。与此同时,我继续将图像放入我的谷歌照片并将它们链接到我的网站。在我找到“真正的”解决方案之前,它运行良好。
    猜你喜欢
    • 2018-02-01
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    • 2016-11-23
    • 2013-09-14
    • 2017-03-05
    相关资源
    最近更新 更多