我目前有在我的网站上传图片的功能。所有图像正在正确上传,但是当我尝试在视图中使用image.url
属性来显示它们时,它会给我一个404找不到的错误。活网站未找到图像文件
我相信这可能是我的Apache配置或Django settings.py。
在我的Apache配置下,我有:
Alias media/ /var/www/MySite/media/
<Directory /var/www/MySite/media>
Require all granted
</Directory>
在我的settings.py:
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
MEDIA_ROOT = os.path.join(PROJECT_ROOT, 'media')
MEDIA_URL = 'media/'
在我看来,我想如下显示图像:
{% for photo in photos %}
<div class="col-md-3 photo-wrapper">
<img src="{{ photo.image.url }}"/>
</div>
{% endfor %}
该图像然后寻找此网址:
http://mysite.co.za/media/profile_photos/photo.png
但它没有找到图像。
我没有检查图像是否上传,并确实到了正确的位置。
而且我的模型进行澄清:
image = models.ImageField(upload_to='profile_photos')
注:这是工作正常,当我在我的本地网站工作。
编辑:
所以,当我尝试不同的修复我搞砸了一些东西,使我改变了调试的settings.py为True,然后我看到实际上正在显示图像。我再次将调试更改为false,并且图像再次不显示。什么会导致dubug影响呢?
是什么image.url的价值开始?它实际上是http://mysite.co.za/media/profile_photos/photo.png? –
是的,完全如文章所示,但它找不到该网址 – Riaan
如果您有权访问服务器,您是否验证过该文件实际存在? –