7

在我的 package.json 文件中,我有 "homepage" : "http://myname.project.com/myapp",

我使用构建应用程序npm run build,输出确认创建了 /build 目录。输出:

102.97 KB 构建/静态/js/main.bfa46b52.js

24.37 KB 构建/静态/css/main.cfe8a47e.css

该项目是在假设它托管在 /myapp/ 的情况下构建的。您可以使用 package.json 中的主页字段来控制它。

构建文件夹已准备好部署。

如果我使用启动应用程序npm startserve -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-scripts 捆绑在一起。

4

1 回答 1

3

我不清楚发生了两件事。

  1. 设置主页属性对 index.html 进行了修改,以便它在部署到 /myapp 目录时能够正常运行。
  2. 从内置静态服务器的根目录运行npm start或仍然部署我的应用程序。serve -s build/

homepage 属性与您的应用程序实际部署的位置没有任何关系。为了解决这个问题,我使用构建后脚本将 /build 文件夹的内容移动到 /build/myapp 文件夹。然后它按预期工作。

所以在这里有更多关于这个的讨论: https ://github.com/facebookincubator/create-react-app/issues/1354#issuecomment-311506599

于 2017-08-18T00:09:41.117 回答