2017-07-15 44 views
1

我在django的settings.py中有以下代码。heroku不在服务css

DEFAULT_FILE_STORAGE = 'hhhh.utils.MediaRootS3BotoStorage' 
STATICFILES_STORAGE = 'hhhh.utils.StaticRootS3BotoStorage' 
S3DIRECT_REGION = 'us-west-2' 
S3_URL = '//%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME 
MEDIA_URL = '//%s.s3.amazonaws.com/media/' % AWS_STORAGE_BUCKET_NAME 
MEDIA_ROOT = MEDIA_URL 
STATIC_URL = S3_URL + 'static/' 
STATIC_ROOT = STATIC_URL + 'static_root/' 

Heroku不提供ststic文件。有任何想法吗。我有允许的主机设置为我的网站和heroku。

回答

0

如果我正确地读你的变量,你的静态URL被构建为这样: S3_URL +静态+ static_root

所以,如果你的S3桶被命名为HHHH,那么最终的URL是 // HHHH。 s3.amazonaws.com/static/static_root

文件是否存在于该位置?

欲了解更多信息,Heroku的提供关于Django的静态文件在这里的样本settings.py文件:静态资产和Django:https://devcenter.heroku.com/articles/django-assets

此页专门讲托管在S3 S3文件与Heroku的: http://www.jorgechang.com/blog/howto-deploy-a-fault-tolerant-django-app-on-aws-part-2-moving-static-media-files-to-s3/

作者的STATIC_ROOT变量是空的,因为文件的静态位置被设置,然后代码指向Amazons3位置上的文件 - 看起来他的代码从特定位置收集静态文件并将它们放入S3中​​,然后引用他们从那里。您似乎试图直接引用您的static_root var上的亚马逊s3 URL,因此此法律为您提供了一种替代方法。