如何在netlify.toml配置中内插环境变量

Jed*_*rds 7 netlify

我想根据环境代理不同的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
Run Code Online (Sandbox Code Playgroud)

这是行不通的。

尽管当我将URI硬编码到to字段中时上述配置有效,但是当我尝试插入env var时它只是失败。

oli*_*pol 6

不支持它,但是Netlify在其文档(https://www.netlify.com/docs/netlify-toml-reference)中建议了一种解决方法:

不支持将netlify.toml文件中的环境变量直接用作值($ VARIABLENAME)。但是,假设您仅尝试更改标头或重定向,则以下工作流可用于基于文件中的环境变量替换值。在构建之前,将读取文件的其余部分-但在构建过程之后将读取这些部分。

  1. 在netlify.toml重定向或标头部分的某处添加占位符,例如API_KEY_PLACEHOLDER。
  2. 创建具有所需值的构建环境变量,例如API_KEY。您可以在toml文件中或在配置的Build and Deploy Settings部分的UI中执行此操作。您可以使用后者将敏感值排除在存储库之外。
  3. 将以下命令添加到构建命令中:sed -i s / API_KEY_PLACEHOLDER / $ API_KEY / g netlify.toml &&常规构建命令。