【发布时间】:2017-12-25 18:57:22
【问题描述】:
需要根据构建环境配置设置<base href=""/>标签的href值。
例如:
staging 应该有<base href="/staging" />
产品应该有<base href="/" />
当前设置:
构建命令:
"build": "sh -ac '. .env.${REACT_APP_ENV}; react-scripts build'",
"build:staging": "REACT_APP_ENV=staging npm run build",
"build:prod": "REACT_APP_ENV=production npm run build",
.env.staging.js:
REACT_APP_BASE_HREF=/staging
index.html:
....
<base href="" + process.env.REACT_APP_API_URL />
....
这似乎在 index.html 中不起作用。虽然类似的设置适用于 JS 文件
(可能是因为 JS 文件被解析并捆绑到单个文件中,并且捆绑器会读取该时间点的值)
尝试过的事情:
index.html:
<base href=process.env.REACT_APP_API_URL />
<base href="process.env.REACT_APP_API_URL" />
<base href="%process.env.REACT_APP_API_URL%" />(类似于 PUBLIC_URL 变量)
设置 basename 属性和浏览器路由器也不能解决问题
【问题讨论】:
-
看看webpack.DefinePlugin:stackoverflow.com/a/30061249/1300562
-
谢谢,但没有解决问题。进程变量在 JS 中被解析,但不在 index.html 中
标签: reactjs deployment create-react-app react-router-v4