【发布时间】:2022-01-20 19:23:42
【问题描述】:
我正在尝试根据环境更改网站图标,以便用户知道他们是在 dev、stage 还是 prod。
this one 和this one 等教程通常展示如何根据按钮推送回调而不是通过访问env 变量来更改网站图标。
react docs on custom env variables 让它看起来是可以实现的,但我不确定如何正确访问index.html 中的env 变量以有条件地更改我的图标。
以下是我目前的尝试
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/app-icon.svg" id="favicon" />
...
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<script>
//returns Uncaught ReferenceError: REACT_APP_APP_ENV is not defined
console.log(REACT_APP_APP_ENV);
//returns nothing
console.log(PUBLIC_URL);
//returns nothing
console.log(process.REACT_APP_APP_ENV === 'dev' ? 'yep!' : 'nope!');
//returns nothing
console.log(process.PUBLIC_URL)
const getFaviconEl = () => {
return document.getElementById("favicon");
}
const getFaviconByEnv = (env) => {
const favicon = getFaviconEl();
switch (env) {
case 'dev':
favicon.href = "%PUBLIC_URL%/app-icon.svg"
case 'prod':
favicon.href = "%PUBLIC_URL%/app-icon-prod.svg"
case 'stage':
favicon.href = "%PUBLIC_URL%/app-icon-stage.svg"
default:
"%PUBLIC_URL%/app-icon.svg";
}
};
getFaviconByEnv(process.REACT_APP_APP_ENV)
</script>
...
</head>
【问题讨论】:
标签: html reactjs environment-variables favicon