Django collectstatic带有AWS S3不复制正确的静态文件和媒体文件



我正在尝试将所有静态文件和媒体文件复制到S3存储桶中。不幸的是,尽管我的媒体根和静态根都在我的设置中提供。

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贡献文件夹中的文件似乎正在复制,而我的文件中的文件和媒体文件夹中没有。以下是我的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.

我认为问题在于您的已安装_Apps设置。

从django contry文件夹中复制文件并不是错误的 - 如果您的安装_Apps设置中的" django.contrib.admin"内部的" django.contrib.admin",则它将为此复制静态文件,例如您上面列出的。(这是Django管理站点)。

如果您没有在installed_apps中列出的应用程序,则它将跳过从应用程序的文件夹收集静态文件。我通过从此设置中删除我的应用程序名称来准确地重现您的问题,毫无疑问,它仅复制了Django contry的文件并跳过了我的应用程序静态文件。因此,即使您的问题有所不同,这也将产生与您所描述的相同的效果。

示例:在设置中。您需要确保拥有这样的东西:

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"将是您应用程序的名称。

最新更新