1

我目前在我的反应应用程序中提供 HTML 文件时遇到问题。我使用@nrwl/react 来构建我的应用程序。

构建我的应用程序后(在公用文件夹中)存在 html 文件夹。 我的设置在本地运行应用程序时有效。在我部署应用程序并托管它的那一刻,我认为反应路由器搞砸了路径。在部署的版本中,我看到我的应用程序在 iframe 中嵌套了一个空白屏幕。

路由器:

<Switch>
    <Route path="/" exact />
    <Route path="/home" component={HomeComp} />
    <Route path="/iframe" component={IframeComp} />
    <Route onEnter={() => window.location.reload()} />
    <Route component={NotFoundPage} />
</Switch>

IframeComp:

import React from 'react';

const IframeComp= () => {
  return (
    <iframe
      src="/staticfolder/index.html"
    ></iframe>
  );
};

export default IframeComp;

我在 web.config 中的重写规则

<rewrite>
  <rules>
    <rule name="HTTPSs">
      <match url="(.*)"/>
      <conditions>
        <add input="{HTTPS}" pattern="Off"/>
        <add input="{HTTP_HOST}" negate="true" pattern="^localhost" />
      </conditions>
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}"/>
    </rule>
    <rule name="ReactRoutes" stopProcessing="true">
      <match url="^(?!api|swagger).*" />
      <conditions>
        <add input="{HTTP_METHOD}" pattern="^GET$" />
        <add input="{HTTP_ACCEPT}" pattern="^text/html" />
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
      </conditions>
      <action type="Rewrite" url="/index.html" />
    </rule>
  </rules>
</rewrite>
4

0 回答 0