我有一个 React 应用程序,通过包含以下内容的.env.production 文件可以在 HTTPS 上完美工作:
HTTPS=true
SSL_CRT_FILE=/etc/ssl/certs/mycert.crt
SSL_KEY_FILE=/etc/ssl/private/mykey.key
package.json文件包含:
"scripts": {
"start": "env-cmd -f .env.production react-scripts start",
"build:production": "env-cmd -f .env.production react-scripts build"
}
当我执行:
npm start
一切都正常工作,我可以从任何地方通过 HTTPS 访问我的服务器。现在有个有趣的事情,现在我这样做:
npm run build:production
这也可以正常工作,并且我得到了:
The build folder is ready to be deployed.
You may serve it with a static server:
serve -s build
现在,这是失败的原因:
1)当我使用上面的 serve 命令时,.env.production 文件中的环境变量未被获取!为什么?
2)如果我手动传递环境变量如下:
HTTPS=true SSL_CRT_FILE=/etc/ssl/certs/mycert.crt SSL_KEY_FILE=/etc/ssl/private/mykey.key PORT=8580 serve -s build
似乎只有PORT变量被接受了,但服务器现在运行在HTTP上。有任何想法为什么?!