2017-07-15 26 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,因此此法律爲您提供了一種替代方法。