django - 使用 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 端点?
提前谢谢了!
解决方案
URL 后缀是 API Gateway 约定:它会自动将强制阶段名称附加到 URL。
我认为没有 API Gateway 或 Zappa 参数可以更改它。
建议为每个阶段使用自定义域和自定义子域。因此,您可以选择符合您需求的用户友好 URL。
您还可以更新您的 STATIC_URL 以包含该阶段。一种方法是将舞台添加为环境变量,并在您的 settings.py 中编写如下内容:
STATIC_URL = os.environ.get("STAGE") + "/static/"
虽然我建议使用自定义域,以便您拥有更多控制权。
推荐阅读
- r - R包:有没有一种方法可以生成包中的方法和依赖关系图?
- javascript - 如何仅使用 Javascript 滚动回左上角?
- javascript - jest + supertest:如何重置模拟依赖项
- c - TinyDTLS 中的 PSK 身份验证
- java - LeetCode 1365 - 寻找比 O(n^2) 更好的解决方案
- javascript - 检测设备/浏览器是否支持全屏 API
- linux - 我如何从另一个目录访问目录中的文件(linux)
- android-fragments - 当您想在 android studio 3.6.3 中创建新片段时,复选框“包括接口回调”在哪里
- java - 使用 feign 客户端进行内部和外部服务通信
- python - 如何让按钮卡在 tkniter 窗口的底部?