使用heroku在生产中使用媒体和静态部署django设置和URL应该是什么样的?

时间:2013-01-04 18:39:33

标签: django heroku amazon-s3 python-2.7 django-settings

目前,我一直遇到让我的静态和媒体在heroku上使用django的问题。我的静态终于工作了,但我的媒体不会,这是我在任何一种生产环境中的第一次,所以我不确定它是否正确完成。我的媒体文件将在上传后运行,但是一旦我编辑了不相关的内容并尝试将其推送到heroku类型,它们就不再有效了:

git add .
git commit -m "changes"
git push heroku master

因此,在我更新myoku应用程序后,用户必须重新添加其媒体文件,以便每次进行更新时它们都能正常工作。至于我到目前为止的代码:

#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}),
    )

我很遗憾该做什么,而且我已经尝试了几个不同的更改我的网址和设置没有任何运气。我已阅读其他帖子并尝试过它们,我已经阅读了文档,但我仍然不太理解。一切都在开发中运行良好,但在我的设置下,我的开发项目有不同的代码。任何帮助将不胜感激。

修改

因此,经过更多的挖掘,我决定尝试处理我的媒体文件。我仍然不确定如何将文件上传到S3,但我已经创建了一个S3存储桶并设置了我的heroku设置(AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,S3_BUCKET_NAME)。我仍然不确定我的媒体和静态设置应该是什么样子。如果有人能指出我正确的方向,我会非常感激。

1 个答案:

答案 0 :(得分:0)

好的,所以我终于按照他们应该的方式工作了很多事情。我现在使用Amazon S3作为我的静态和媒体文件(部分归功于this帖子,对我来说,正确设置内容的最有用的帖子是here。如果你使用的是heroku,那么你可能想要研究使用S3来获取静态和媒体文件。是的,这是你必须尝试配置和集成的其他东西,不是它不是免费的,但是如果你只是推迟,你可能会发现自己最终使用它无论如何,所以请节省一些时间。This也有助于将静态媒体和媒体分成独立的配音。