【问题标题】:How to Host two react js application on single application pool?如何在单个应用程序池上托管两个反应 js 应用程序?
【发布时间】:2020-04-22 20:54:51
【问题描述】:

我试图在 IIS 的默认网站下托管两个反应应用程序? 前任。如果域是 test.com 两个站点的 URL 就像 test.com/React1 test.com/React2 图片 1 图片 2 图 3 图片 4 图 5 如果我们刷新图 4 中的页面,我们会得到以下信息。

【问题讨论】:

  • 那你试过了吗?这里真正的问题是什么?
  • 有时,如果我映射一个网站的静态文件夹,那么只有该网站有效。第二次它会显示 404 错误。对于一个网站,我无法映射两条物理路径。
  • 您的描述不明确。你能分享一系列截图来进一步说明吗?

标签: reactjs iis hosting


【解决方案1】:

如果您想在 iis 中将 react 应用部署为子应用,则需要进行以下设置:

将所有绝对链接转换为相对链接。

<link href="/static/css/main.584f321a.chunk.css" rel="stylesheet">

<link href="./static/css/main.584f321a.chunk.css" rel="stylesheet">

【讨论】:

  • 不工作。如果我托管我不想要的 react1.test.com 和 react2.test.com,它工作正常
  • 能否请您分享您的浏览器网络选项卡和控制台快照,以及您的站点绑定详细信息、文件夹结构快照。
【解决方案2】:

如果您使用 yarn 来构建您的应用程序。您必须在 package.json 文件中添加两件事。 先将主页值添加到同级name值的package.json中

{
  "name": "...",
  "version": "...",
  "hompage" : "/SitePrefix"
  ...
}

在您的情况下,您有 2 个站点 testweb1 和 testweb2。因此,您必须分别在其 package.json 中通过 /testweb1 或 /testweb2 更改 /SitePrefix。然后添加一个命令来编译您的项目,因此您必须设置 de 变量 PUBLIC_URL(它出现在公用文件夹的 index.html 文件中,如 %PUBLIC_URL%)。您必须更改要在最终 index.html 文件中覆盖的变量的值。所以在你的 package.json 中添加 build-prod-env 命令

"scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "build-prod-env": "set PUBLIC_URL=/testweb1&&yarn build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },

不要在 /testweb1 和 && 之间添加空格,因为它会影响你的编译过程。发布您的应用并对更改 PUBLIC_URL 变量的其他页面执行相同操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    • 2013-11-28
    相关资源
    最近更新 更多