2015-09-28 46 views
0

我在Heroku上部署我的django項目的階段,但網站上的圖像不加載。看來,CSS文件正常工作。當我運行:圖像不在heroku上,css文件正常工作

python manage.py collectstatic --dry-run --noinput 

heroku run python manage.py collectstatic --noinput 

一切正常,我可以看到這一點應在網站上顯示的圖像是使用collectstatic命令收集。

什麼也很重要,當我將圖像添加到我的數據庫,重新加載的網站是死與server error (500)

我認爲有一些bug,我settings.pyurls.py,但我不能確定它。

Settings.py: https://github.com/dominik791/Cardom_initial_Heroku/blob/master/cardom_project/settings.py

Urls.py: https://github.com/dominik791/Cardom_initial_Heroku/blob/master/cardom_project/urls.py

Local_settings.py:

import os 
BASE_DIR = os.path.dirname(os.path.dirname(__file__)) 

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', 
     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 
    } 
} 

DEBUG = True 

wsgi.py:https://github.com/dominik791/Cardom_initial_Heroku/blob/master/cardom_project/wsgi.py

任何想法?

回答

2

靜態文件和媒體文件是完全不同的東西。靜態文件與您的應用程序一起上傳,並與其保存在一起,並通過collectstatic進行收集。但是媒體文件由用戶上傳,不可能存儲在Heroku的服務器上;畢竟,Heroku dynos是短命的,當它們死亡時,存儲在它們上面的文件就會丟失。對於使用git的靜態文件來說,這很好,但對用戶上傳的媒體文件顯然沒有好處。

這就是爲什麼你需要將它們存儲在更中心的地方;亞馬遜S3是通常的地方。 This question總結了如何做到這一點。