在我的 package.json 文件中
“主页”:“http://myname.project.com/myapp”,
我使用 npm run build
构建应用程序,输出确认/build 目录已创建。输出:
102.97 KB build/static/js/main.bfa46b52.js
24.37 KB build/static/css/main.cfe8a47e.css
The project was built assuming it is hosted at /myapp/. You can control this with the homepage field in your package.json.
The build folder is ready to be deployed.
如果我使用 npm start
或 serve -s build
启动应用程序,应用程序将启动并加载 index.html 页面,但对静态资源的引用来自index.html 已损坏(/myapp/static/js/main.js 和/myapp/static/css/main.css)。我可以在没有/myapp 的情况下直接导航到它们(localhost:5000/static/js/main.js 有效;localhost:5000/myapp/static/js/main.js 无效)
如果我将构建文件夹部署到/myapp 目录下的另一个普通旧 Apache 服务器,它似乎可以按预期工作。有什么方法可以配置 serve -s build
以提供来自/myapp 目录的页面?
该应用程序目前只有一个页面,没有链接,也没有 react-router 或任何等效的实现。该团队一直在使用 webpack,但将其移除。该应用程序使用 react 脚本进行捆绑。
最佳答案
我不清楚发生了两件事。
- 设置 homepage 属性对 index.html 进行了修改,使其在部署到/myapp 目录时能够正常运行。
- 运行
npm start
或serve -s build/
仍然从内置静态服务器的根目录部署我的应用程序。
主页属性与您的应用实际部署位置没有任何关系。为了解决这个问题,我使用了 postbuild 脚本将我的/build 文件夹的内容移动到/build/myapp 文件夹。然后它按预期工作。
所以这里有更多关于这个的讨论: https://github.com/facebookincubator/create-react-app/issues/1354#issuecomment-311506599
关于node.js - react 主页属性不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45704446/