目前,我一直在让我的静态和媒体与 heroku 上的 django 一起工作时遇到问题。我的静态终于可以工作了,但我的媒体不行,这是我在任何类型的生产环境中的第一次,所以我不确定它是否正确完成。我的媒体文件将在上传后工作,但是一旦我编辑不相关的内容并尝试将其推送到 heroku 输入,它们将不再工作:
git add .
git commit -m "changes"
git push heroku master
因此,在我更新我的 heroku 应用程序后,用户必须重新添加他们的媒体文件才能让他们在我每次更新时都能正常工作。就我到目前为止的代码而言:
#settings.py
DEBUG = False
MEDIA_ROOT = 'media'
MEDIA_URL = '/media/'
STATIC_ROOT = 'static'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
'static',
)
#urls.py
urlpatterns += staticfiles_urlpatterns()
if not settings.DEBUG:
urlpatterns += patterns('',
(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),
(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
)
我很不知道该怎么做,我尝试了几种不同的更改我的网址和设置,但没有任何运气。我读过其他帖子并尝试过,我读过文档,不幸的是我仍然不太明白。在开发中一切正常,但在我的设置下,我的开发项目有不同的代码。任何帮助将不胜感激。
编辑
因此,经过更多挖掘,我决定尝试使用 Amazon S3 来处理我的媒体文件。我仍然不确定如何将文件上传到 S3,但我已经创建了一个 S3 存储桶并设置了我的 heroku 设置(AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、S3_BUCKET_NAME)。我仍然不确定我的媒体和静态设置应该是什么样子。如果有人能指出我正确的方向,我将不胜感激。