谷歌灵活环境 django gunicorn nginx 静态文件
Posted
技术标签:
【中文标题】谷歌灵活环境 django gunicorn nginx 静态文件【英文标题】:Google Flexible Environment django gunicorn nginx static files 【发布时间】:2018-09-22 06:11:58 【问题描述】:以 Gunicorn 作为入口点运行 Django 项目 Google 灵活环境,以便我可以使用 geventworkers。
似乎无法弄清楚如何正确处理静态文件。
我在 Django 设置中设置了STATIC_URL = '/static/'
和STATIC_ROOT = 'static'
。
我还运行了manage.py collectstatic
并且文件确实被正确复制了,但是我的 django rest 框架大摇大摆地找不到它的文件。
为方便起见,我已经在我的设置中添加了TEMPLATES
。
在我开始使用 geventworkers 之前,这曾经有效。
我试图让 nginx 提供文件,但我似乎无法编辑 nginx 配置。它默认运行的docker。
TEMPLATES = [
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
'rest_framework.templates',
'rest_framework_swagger.templates',
os.path.join(BASE_DIR, 'website'),
],
'APP_DIRS': True,
'OPTIONS':
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
],
,
]
【问题讨论】:
【参考方案1】:Gunicorn 不提供静态内容,因此您必须创建一个 Google Cloud Storage 存储桶来提供静态内容。
创建存储桶并上传静态文件。
gsutil mb gs://<your-gcs-bucket>
gsutil defacl set public-read gs://<your-gcs-bucket>
gsutil rsync -R static/ gs://<your-gcs-bucket>/static
在settings.py
中设置STATIC_URL
的值如下:
STATIC_URL = 'https://storage.googleapis.com/<your-gcs-bucket>/static/'
您可以关注step by step guide,了解如何将应用部署到 App Engine 柔性环境。
【讨论】:
我的意思是,我知道这是可行的,但我正在尝试找到一个解决方案,我的意思是能够获取默认的 nginx 配置来获取我的静态文件 @RoseBlax 您要实现的目标与您的原始帖子无关。要么编辑您的帖子,以便更清楚您想要实现的目标,要么发布另一个问题。以上是关于谷歌灵活环境 django gunicorn nginx 静态文件的主要内容,如果未能解决你的问题,请参考以下文章
Flask+Gunicorn+Gevent+Supervisor+Nginx生产环境部署
Django项目使用gunicorn+supervisor启动,生产环境适用