首页 > 解决方案 > 使用 Zappa 部署 Django - 根 URL 错误

问题描述

我已经按照我找到的 Zappa 教程成功设置了一个 Django 应用程序。但是,问题是 Zappa 将我的应用程序部署到该位置:

 https://some-aws-address/devel

其中“devel”是我的特定 Zappa 部署的名称。

问题在于,在这个位置,我的页面上有以“/”开头的链接,这些链接映射到:

 https://some-aws-address/ 

不是(如我所愿):

https://some-aws-address/devel 

例如,在我的一个模板文件中,我在图像上有一个链接:

<a href="/"><img src="{% static 'images/main/ryzosens-logo-white-background.png' %}"></a>

href="/" 总是映射到 https://some-aws-address/

我不想做一些破解来让我的根 URLS 映射到 https://some-aws-address/devel,所以问题是:

我必须在我的 Django 设置(或其他地方)中有什么,以便我的 URL 根“/”映射到 Zappa 创建的 HTTP 端点?

提前谢谢了!

标签: djangozappapython-zappa

解决方案


URL 后缀是 API Gateway 约定:它会自动将强制阶段名称附加到 URL。

我认为没有 API Gateway 或 Zappa 参数可以更改它。

建议为每个阶段使用自定义域和自定义子域。因此,您可以选择符合您需求的用户友好 URL。

您还可以更新您的 STATIC_URL 以包含该阶段。一种方法是将舞台添加为环境变量,并在您的 settings.py 中编写如下内容:

STATIC_URL = os.environ.get("STAGE") + "/static/"

虽然我建议使用自定义域,以便您拥有更多控制权。


推荐阅读