0

我正在将 django 应用程序从 1.9.10 升级到 1.10.5,并且发现 URL 不再正确解析,因为 FORCE_SCRIPT_URL 已设置,并且现在正在添加到 ** 所有内容 ** 上。

我怀疑这是因为“django.setup() 中的添加允许在请求/响应周期之外发生的 URL 解析(例如在管理命令和独立脚本中)在设置 FORCE_SCRIPT_NAME 时将其考虑在内”。(https://docs.djangoproject.com/en/1.10/ref/applications/#django.setup)。

如果我设置了 FORCE_SCRIPT_URL,则该站点在浏览器上本地运行,我可以登录,进入该项目中的不同应用程序,它们在大多数情况下似乎都可以正常工作。但是,所有视图测试都失败并出现 404 错误,因为 URL 解析不正确,并且我所有涉及登录的测试也失败(再次,我认为这是因为 url 解析不正确)。例如,以前,调用reverse(my_url_name)会返回/my_path,而现在,它会返回/subdomain/my_path

在此升级中是否有任何变通方法或我缺少的东西来解决此问题?我真的不想取消这个设置,FORCE_SCRIPT_URL,因为有很多事情似乎依赖于此。

提前致谢!

4

1 回答 1

0

简单的解决方法是在我们的测试环境中覆盖此设置,但在我们的其余设置中保持它处于活动状态。

于 2017-03-26T17:17:13.913 回答