【问题标题】:Django graphene GraphiQL page not loading when running from Uvicorn从 Uvicorn 运行时,Django 石墨烯 GraphiQL 页面未加载
【发布时间】:2020-07-31 19:57:46
【问题描述】:

不确定我设置错了什么,但在使用uvicorn mysite.asgi:application 在uvicorn 中运行时我没有得到graphiql 界面:

[32mINFO[0m:     Started server process [[36m14872[0m]
[32mINFO[0m:     Waiting for application startup.
[32mINFO[0m:     ASGI 'lifespan' protocol appears unsupported.
[32mINFO[0m:     Application startup complete.
[32mINFO[0m:     Uvicorn running on [1mhttp://127.0.0.1:8000[0m (Press CTRL+C to quit)
[32mINFO[0m:     127.0.0.1:52463 - "GET /graphql/ HTTP/1.1" 200
Not Found: /static/graphene_django/graphiql.js
[33mWARNING[0m:  Not Found: /static/graphene_django/graphiql.js
[32mINFO[0m:     127.0.0.1:52463 - "GET /static/graphene_django/graphiql.js HTTP/1.1" 404
Not Found: /static/graphene_django/graphiql.js
[33mWARNING[0m:  Not Found: /static/graphene_django/graphiql.js
[32mINFO[0m:     127.0.0.1:52463 - "GET /static/graphene_django/graphiql.js HTTP/1.1" 404

但是当我做python manage.py runserver时它加载正常

这是我安装的:

Python 3.8.2
Django==3.0.5
uvicorn==0.11.3
graphene==2.1.8
graphene-django==2.9.0
graphql-core==2.3.1

在 settings.py 我有:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static"),]

# Graphene
GRAPHENE = {
    'SCHEMA': 'mysite.schema.schema'
}

【问题讨论】:

  • 出于兴趣,端点是否仍然适用于来自 grapqhl 客户端的请求?

标签: graphene-django graphiql asgi uvicorn


【解决方案1】:

Django 不会在开发服务器之外自行提供静态文件,您必须以某种方式自己完成。您可以设置像 nginx 这样的反向代理,并指示它为您的 staticfiles 目录中的所有静态文件提供服务,或者,仅用于开发,您可以通过添加到您的urls.py:

from django.conf import settings
from django.views.static import serve

# Put the line provided below into your `urlpatterns` list.
url(r'^(?P<path>.*)$', serve, {'document_root': settings.STATIC_ROOT})

确保仅将后一种方法用于开发,因为它可能会对性能产生严重影响。

对于这两种方法,您还必须使用 python manage.py collectstatic 收集静态文件,因为 django 在开发服务器之外需要将所有静态文件收集在一个地方,即您的 STATIC_ROOT

【讨论】:

    【解决方案2】:

    只需在 settings.py 文件中设置 DEBUG = True。

    【讨论】:

      猜你喜欢
      • 2021-05-22
      • 2018-01-11
      • 2020-09-01
      • 2019-12-20
      • 2021-09-25
      • 2020-09-05
      • 2017-08-20
      • 2020-09-03
      • 2019-01-19
      相关资源
      最近更新 更多