Я пытаюсь развернуть свое приложение django на heroku. Все статические файлы обслуживаются whitenoise
и успешно перенесены. Но как мне получить мои медиафайлы, которые загружаются с использованием ImageField
для отображения во время производства.Служебные медиафайлы во время развертывания в django 1.8
мой settings.py
STATIC_URL = '/static/'
STATIC_ROOT = 'C:/Users/Sak/mpro/feat/static/'
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
wsgi.py
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mpro.settings")
application = get_wsgi_application()
try:
from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise
application = get_wsgi_application()
application = DjangoWhiteNoise(application)
from dj_static import Cling
application = Cling(get_wsgi_application())
except:
pass
urls.py
urlpatterns = [
url(r'^', include('feat.urls', namespace="feat")),
url(r'^admin/', include(admin.site.urls)),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Все мои медиа-файлы, загруженные base_dir/media/media
и когда whitenoise
собирает статические файлы, которые он собирает только файлы на STATIC_ROOT
, так как я могу развернуть мои медиафайлы. Когда я запустил heroku run ls
, я вижу папку с носителями.
Ну, файлы на носителях должны быть данными во время выполнения, связанными с данными в базе данных, поэтому они не копируются, так же, как они не будут копировать данные из базы данных. Полагаю, вы могли бы использовать светильники, если вам нужны какие-то исходные данные. В противном случае, вы в значительной степени уверены, я полагаю. – spectras
Я понимаю, что они не копируются так же, как статические файлы, но должен быть способ добавления медиа-изображений. Может быть, даже после производства, если я хочу добавить новые изображения в мой администратор, должен быть способ сохранить его где-нибудь, чтобы они были скопированы слишком. Можете быть в папке статических файлов, где они скопированы вместе со статическими файлами. – WutWut
You могут либо загрузить их, что приведет к тому, что Django поместит их там, либо вы можете скопировать файлы вручную и назначить 'instance.image.path' прямое указание на них в каком-то скрипте. Путь должен относиться к «MEDIA_ROOT». – spectras