Django静态文件映像未显示在IBMCloudFoundry上



我读过其他一些线程,在谷歌上搜索过,并尝试过阅读文档,但找不到我要找的内容。我是Django的新手。同样的代码在我的本地和pythonywhere.com 上运行良好

我的网络应用程序显示一个"兴趣"、"图片"one_answers"网址"列表。"image"实际上是指向本地映像文件的路径。该应用程序可以很好地部署到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 -->

来自设置.py:

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

所以,我不知道发生了什么。任何建议都很感激。谢谢

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

尽管有一个变通方法:链接

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

最新更新