我有许多 django 应用程序在同一域中运行,但在让 SCRIPT_NAME 与 Gunicorn 一起正常工作时遇到问题。
应用程序路径示例:
场景 1:我目前在 Elastic Beanstalk 上运行每个应用程序,并修改 apache 配置来处理 SCRIPT_NAME 方面的事情。这有效。
场景 2:我一直在使用 AWS ECS/FARGATE 进行测试,在该配置中我只有一个运行 Django/Gunicorn 的容器。没有 Apache/Nginx 等。我打算只使用 Django/Gunicorn/Whitenoise/Cloudfront。这是行不通的。使 django 使用子路径的 SCRIPT_NAME 值是重复的。
为了简化/排除故障,我在本地运行下面的代码/命令,因此不涉及 AWS。我还创建了一个简单的 django 应用程序用于测试。
我的应用程序页面结构是这样的:
<a href="{% url 'demo:page1' %}">Page1</a>
<a href="{% url 'demo:home' %}">Home</a><a href="{% url 'demo:page2' %}">Page2</a>
<a href="{% url 'demo:home' %}">Home</a>脚步:
我启动网络服务器:(
gunicorn config.wsgi --env SCRIPT_NAME=demo -b 0.0.0.0:80 --keep-alive 20 --log-file=- --log-level debug --capture-output它在 Docker 容器中运行)
我可以去http://127.0.0.0:8000/demo. 它按预期加载应用程序主页。
Page1链接显示为,我单击,http://127.0.0.0:8000/demo/page1它按预期转到Page1
主页链接显示为。http://127.0.0.0:8000/demo/demo/它的 SCRIPT_NAME 重复,并且链接不起作用。
有什么想法我做错了吗?这是为了工作吗?
| 归档时间: |
|
| 查看次数: |
4164 次 |
| 最近记录: |