2016-06-08 89 views
0

我目前有在我的網站上傳圖片的功能。所有圖像正在正確上傳,但是當我嘗試在視圖中使用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影響呢?

+0

是什麼image.url的價值開始?它實際上是http://mysite.co.za/media/profile_photos/photo.png? –

+0

是的,完全如文章所示,但它找不到該網址 – Riaan

+0

如果您有權訪問服務器,您是否驗證過該文件實際存在? –

回答

0

的阿帕奇alias directive應該用/

Alias /media/ /var/www/MySite/media/ 
+0

我試過你的修復,但仍然沒有工作,還檢查我的編輯,一些新的東西出現了。 – Riaan

+0

從你的編輯我可以說'DEBUG = True'啓用正確(但不安全)的路由,這就是爲什麼圖像顯示。不僅要將'Alias'設置爲'/ media /',而且還要設置'MEDIA_URL ='/ media /''。這適用於我的項目。 – Nevertheless