Elastic Beanstalk Aws Django 静态和媒体文件

Posted

技术标签:

【中文标题】Elastic Beanstalk Aws Django 静态和媒体文件【英文标题】:Elastic Beanstalk Aws Django static and media files 【发布时间】:2020-11-15 20:54:28 【问题描述】:

我在上传媒体文件后无法访问它们,我有一个商店网站,管理员可以在其中添加项目及其图像,我有两个单独的根文件夹: /static : 用于静态文件 /Prod :用于产品文件

这是我的设置.py:

...

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))

...
...

STATIC_ROOT = os.path.join(PROJECT_DIR, 'static', 'Prod')
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]
MEDIA_ROOT = os.path.join(PROJECT_DIR, 'Prod')
MEDIA_URL = '/Prod/'

当我检查图像 URL 时,它们是正确的:mywebsitw.com/prod/image.jpg 但它们没有显示,直接 url 也没有显示任何图像,知道图像已上传到正确的目录中

PS:在我本地的虚拟环境中,它可以完美运行

【问题讨论】:

【参考方案1】:

对于那些有同样问题的人,我只是切换到 S3 进行动态存储(链接到 db)并为(CSS、JS、静态图像...)保留静态文件。

你需要添加一些包:Boto3、django-storages。

网上有很多不错的tuto,随便搜一下:django s3 upload files

【讨论】:

以上是关于Elastic Beanstalk Aws Django 静态和媒体文件的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk CLI 安装错误

text AWS Elastic Beanstalk

HTTPS Elastic Beanstalk (AWS) 到 Android

AWS Elastic Beanstalk 无法担任角色

AWS Elastic Beanstalk

AWS Elastic Beanstalk chown PythonPath 错误