打包遇到的一个问题
执行命令
cd 项目目录
npm run build
如果不做任何修改,直接在nginx下访问,会产生js无法访问,因为根目录会指向根域名,而不是项目目录。
eg:
http://www.abc.com/static/js/main.b39d165c.js 访问的是这个错误路径
http://www.abc.com/app/static/js/main.b39d165c.js 正确路径应该是这个
包括index.html文件中引用的路径也是错误的。
如何修改呢?找到如下目录
/项目目录/node_modules/react-scripts/config/paths.js
找到这个函数
42. function getServedPath(appPackageJson) {
43. const publicUrl = getPublicUrl(appPackageJson);
44. const servedUrl =envPublicUrl || (publicUrl ? url.parse(publicUrl).pathname : '/');
45. return ensureSlash(servedUrl, true);
46. }
将const servedUrl =envPublicUrl || (publicUrl ? url.parse(publicUrl).pathname : '/');
改成const servedUrl =envPublicUrl || (publicUrl ? url.parse(publicUrl).pathname : './');
最后加个点就ok了。
重新运行
npm run build
重新访问即可。
网友评论