1

我正在尝试将所有静态和媒体文件复制到 S3 存储桶。不幸的是,尽管我的 settings.py 文件中提供了我的媒体根目录和静态根目录......

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.
4

1 回答 1

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

于 2016-12-18T19:37:00.447 回答