【发布时间】:2018-07-20 00:50:11
【问题描述】:
这篇文章与部署 AirBnBs knowledge repo 应用程序有关。
我们在服务器的子路由上托管我们的知识库 - 例如https://aws.our-server-uri.com/knowledge-repo,我遇到了加载静态内容和重定向的问题。
总之,我无法让 Knowledge_repo Flask 应用程序知道该应用程序正在子路由上运行。
问题
我遇到的第一个问题是让 gunicorn 了解上下文路由,以便成功定位静态文件,这些文件现在位于 /knowledge-repo/static/... 并且与根 url 无关。我通过在运行knowledge_repo --repo . deploy 之前将SCRIPT_NAME 环境变量设置为/knowledge-repo 解决了这个问题。 我将其包括在内,以作为我尝试过的参考和更好的解决方案的潜在建议。
第二个未解决的问题是动态地将我们的上下文路由添加到 Web 应用生成的重定向 url。例如,顶部导航栏中的 Home 按钮将用户重定向到根 URL(在我们的示例中为 https://aws.our-server-uri.com/)。我需要烧瓶应用程序了解我的上下文路由并将/knowledge-repo/ 附加到所有生成链接的页面根目录。
我的尝试:
我想避免分叉和修改这个 repo,所以我专注于不涉及编辑 Flask 应用程序 html 的方法,例如设置 <base> 标签。
- 我在部署之前已经设置了
SCRIPT_NAME环境变量,但是没有用。 - 我在运行
knowledge_repo deploy时使用--config config.py标志传递了config.py中的一些变量,但似乎找不到任何可以解决问题的方法。
【问题讨论】:
标签: python flask gunicorn knowledge-repo