我刚刚创建了一个利用创建反应的应用程序内和应用开始于3000端口反应的应用程序,罚款。我想有一个前缀来访问应用程序,在我的情况/节点和80端口,即http://localhost/node。对于我已经配置了Apache有:
<Location /node>
Allow from all
ProxyPass http://localhost:3000/ retry=0
ProxyPassReverse http://localhost:3000/
</Location>
和工程部分,我可以访问http://localhost/node,但由于捆绑的路线是静态的页面不正确加载。 Usign控制台我看到http://localhost/static/js/bundle.js失败,并没有发现该请求。
bundle.js不是index.html的,所以应该通过的WebPack注入。
我一直在四处寻找哪里配置的WebPack更改配置,以使bundle.js下节点/静态/ JS / bundle.js或类似的东西。
如何不使用Apache代理。
编辑“的package.json”,加
"homepage": "http://localhost/" ,
不"homepage": "http://localhost/node"
结果:
$ head package.json
{
"name": "reactapp",
"private": true,
"homepage": "http://localhost/",
"devDependencies": {
....
跑
npm run build
创建符号链接
ln -s create-react-app/build /var/www/html/node
我产生建立文件夹运行
sudo npm run build
在应用根文件夹。然后,我创建的文件夹在/ var / www / html等/应用程序,并复制的index.html和相关文件的文件夹。我也不得不纠正的index.html文件路径。
然后反应过来的应用程序可以通过将URL http://localhost/app打开。
我有同样的问题,我解决了使用的WebPack的publicPath
属性:https://webpack.js.org/guides/public-path/
在我的配置,我势必这种属性的环境变量:
output: {
path: path.resolve(process.cwd(), 'build'),
publicPath: process.env.PUBLIC_URL || '/',
}
在你的情况,你会碰到类似PUBLIC_URL=/node npm run build
。这将使的WebPack前插/node
在index.html
每个URL。