谷歌灵活环境 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启动,生产环境适用

关闭 django 站点进行维护?

将环境变量中的 Django SECRET_KEY 传递给 Dockerized gunicorn

使用Nginx和Gunicorn部署Django项目

使用Gunicorn Ngnx Supervisor部署Django项目