【发布时间】:2013-04-01 16:38:11
【问题描述】:
我正在使用 django-s3-folder-storage 来存储我的静态和媒体文件。我遵循了文档中提到的所有说明,但仍然无法提供我的静态文件。我能够为我的用户上传的文件提供服务,但即使在运行 collectstatic 命令后静态文件也不会显示在网站上,该命令将文件复制到存储桶中。我没有在我的域中创建任何 CNAME 记录(不确定这是否有任何区别,因为我能够看到用户上传的图像)。
我的设置文件:
DEFAULT_FILE_STORAGE = 's3_folder_storage.s3.DefaultStorage'
DEFAULT_S3_PATH = "media"
STATICFILES_STORAGE = 's3_folder_storage.s3.StaticStorage'
STATIC_S3_PATH = "static"
AWS_ACCESS_KEY_ID = # omitted
AWS_SECRET_ACCESS_KEY = # omitted
AWS_STORAGE_BUCKET_NAME = # omitted
MEDIA_ROOT = '/%s/' % DEFAULT_S3_PATH
MEDIA_URL = '//s3.amazonaws.com/%s/media/' % AWS_STORAGE_BUCKET_NAME
STATIC_ROOT = "/%s/" % STATIC_S3_PATH
STATIC_URL = '//s3.amazonaws.com/%s/static/' % AWS_STORAGE_BUCKET_NAME
ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/'
STATICFILES_DIRS = (
root('static'),
)
还有我的项目目录:
website_name
static
website_name
settings.py
【问题讨论】:
-
我正在使用 s3fox,由于某种原因,我无法在 collectstatic 之后检查文件是否进入存储桶。我在这里发布了另一个关于此的问题。 (stackoverflow.com/questions/15747933/…)。我也无法使用他们的直接 URL 访问它们?我没有设置任何指向 s3.amazon.com 的 CNAME 记录点?我需要设置才能访问静态文件吗?
-
尝试通过 Amazon 的 Web 界面登录 S3 并以这种方式检查存储桶的内容。另外,您能否将您的 Django 版本、MEDIA_URL 和 STATIC_URL 设置添加到问题中? (如果您尚未将 _URL 设置更改为新域名,那么不,您的 CNAME 还不是问题。)
-
嗨,我已经用我的设置编辑了我的问题。当我使用亚马逊用户界面登录时,我还可以看到存储桶,我也可以看到我所有的静态文件。
-
嗨,我在我的设置中指定了存储桶名称,它也存在于亚马逊 s3 上。我能够为用户上传的文件提供服务。这只是我遇到问题的静态文件。当我在浏览器中检查元素时,静态图像的路径就像我在 edit2 中提到的那样。您能否让我知道是否需要在 s3.amazonaws.com 等开始之前添加存储桶名称,如我的编辑 2 中那样?
-
您好,更改静态网址后,它现在可以正常工作了。我也用编辑更新了我的问题。
标签: django django-storage