2016-12-17 45 views
0

我試圖將所有靜態和媒體文件複製到S3存儲桶。不幸的是,儘管事實證明我的媒體的根和靜態根都在我的settings.py文件提供....Django通過AWS S3 Collectstatic無法複製正確的靜態和媒體文件

DEFAULT_FILE_STORAGE = 'jeffrey.aws_storage_classes.MediaStorage' 
AWS_ACCESS_KEY_ID = 'keyhere' 
AWS_SECRET_ACCESS_KEY = 'secretkeyhere' 
AWS_STORAGE_BUCKET_NAME = 'bucketname' 
STATICFILES_STORAGE = 'jeffrey.aws_storage_classes.StaticStorage' 

AWS_S3_DOMAIN = "%s.s3.amazonaws.com" % AWS_STORAGE_BUCKET_NAME 
STATIC_URL = "https://%s/static/" % AWS_S3_DOMAIN 
MEDIA_URL = "https://%s/media/" % AWS_S3_DOMAIN 

MEDIA_ROOT = u'/home/namehere/mysite/media' 
STATIC_ROOT = u'/home/namehere/mysite/static' 

....從我的Django的contrib文件夾的文件似乎被複制,而我的文件靜態和媒體文件夾不是。以下是我的bash控制檯:

Type 'yes' to continue, or 'no' to cancel: yes 
Copying '/usr/local/lib/python2.7/dist-  packages/django/contrib/admin/static/admin/css/fonts.css' 
Copying '/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/img/icon-addlink.svg' 
Copying '/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/img/icon-no.svg' 
Copying '/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/img/inline-delete.svg' 
.... 
.... 
Copying '/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/img/gis/move_vertex_on.svg' 
Copying '/usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/img/gis/move_vertex_off.svg' 
61 static files copied. 

回答

0

我認爲問題在於您的INSTALLED_APPS設置。

它從django contrib文件夾複製文件是沒有錯的 - 如果你的INSTALLED_APPS設置中有'django.contrib.admin',那麼它將複製靜態文件,如上面列出的那樣。 (這是Django管理站點)。

如果您沒有在INSTALLED_APPS中列出您的應用,那麼它將跳過從應用文件夾中收集靜態文件。我設法通過從此設置中刪除我的應用程序名稱來完全重現您的問題,毫無疑問,它突然只複製了django contrib中的文件並跳過了我的應用程序靜態文件。 所以即使你的問題變得不同,這也會和你描述的一樣。

例子:在settings.py,你需要確保你有一些看起來像這樣:

INSTALLED_APPS = [ 
    # Add your apps here to enable them 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'storages',      #Amazon S3 
    'myapp', 
] 

注意「MYAPP」將是無論你的應用程序的名稱。

相關問題