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 安装错误