【发布时间】:2016-11-09 13:50:54
【问题描述】:
所以,我正在使用 nginx 从/my_app/ 为我的 django 应用程序提供服务:
location /my_app/ {
proxy_pass http://127.0.0.1:8000/;
}
我有STATIC_URL = '/my_app/static
然后,当使用 django 管理员时,对/my_app/static/admin/css/base.css 的请求解析为static/admin/css/base.css。因此,它不匹配任何静态文件(因为 django 期望 /my_app/static/... 作为前缀)。
所以,我的解决方案(在开发中)是通过我自己的“静态文件服务”来提供静态文件:
] + static('/static/', document_root=settings.STATIC_ROOT)
但我有些疯狂 TypeError at /static/admin/css/base.css 因为我的 STATIC_ROOT 是空的(我想在开发中它应该使用 STATIC_ROOT)。如果我将 STATIC_ROOT 设置为任何值,它也不会解析(看起来它实际上是在尝试从静态目录提供服务,而不是动态解析)。
Sooo,如何从子文件夹中为我的 django 应用程序提供服务,以便在 dev 中动态地提供静态文件?
编辑:即使使用 FORCE_SCRIPT_NAME = '/my_app/ 也无法正常工作,并且 django 管理员中的链接也是错误的,但这是意料之中的
编辑 2:从 Django 1.10 开始,管理链接现在是正确的(尊重 SCRIPT_NAME):https://docs.djangoproject.com/en/1.10/releases/1.10/#django-contrib-admin
【问题讨论】: