我想根据环境代理不同的api - 我已经尝试了以下主题的一些变化而没有任何运气。如果可能的话,这样做的正确方法是什么?
[build.environment]
API_URI="https://dev-api.foo.com/:splat"
[context.production.environment]
API_URI="https://prod-api.foo.com/:splat"
[[redirects]]
from = "/api/*"
to = "$API_URI"
status = 200
force = true
这不起作用。
虽然上面的配置在我将URI硬编码到to
字段时有效,但是当我尝试插入env var时,它就失败了。
答案 0 :(得分:3)
不支持它,但是Netlify在其文档(https://www.netlify.com/docs/netlify-toml-reference)中建议了一种解决方法:
直接在您的计算机中将环境变量用作值($ VARIABLENAME) 不支持netlify.toml文件。但是,以下工作流程 可用于基于环境变量替换值 文件,假设您仅尝试更改标头或重定向。的 在构建之前已读取文件的其余部分-但这些部分是 在构建过程之后阅读。
- 添加一个占位符,例如 netlify.toml中某处的API_KEY_PLACEHOLDER重定向或标头 部分。
- 创建一个构建环境变量,例如API_KEY, 具有所需的值。您可以在toml文件或我们的用户界面中执行此操作 在配置的“构建和部署设置”部分中。您 可能会使用后者将敏感值排除在存储库之外。
- 将这样的命令添加到构建命令中:sed -i s / API_KEY_PLACEHOLDER / $ API_KEY / g netlify.toml &&常规构建命令。
答案 1 :(得分:0)
回答我自己的问题 - 它不受支持,你必须自己手动插入env变种作为Netlify构建的一部分。
答案 2 :(得分:0)
是的。这是可能的。这是详细的文档:https://www.netlify.com/docs/continuous-deployment/#deploy-contexts
就我而言,我需要为生产部门和所有其他分支机构分别设置REACT_APP_API_URL
。这是我用的:
[context.production.environment]
REACT_APP_API_URL = "https://api.test.im"
[context.deploy-preview.environment]
REACT_APP_API_URL = "https://api-staging.test.im"
[context.branch-deploy.environment]
REACT_APP_API_URL = "https://api-staging.test.im"