Reactjs: Открытие ссылки в новой вкладке прекрасно работает в разработке, но код состояния 404 в производстве - PullRequest
0 голосов
/ 02 марта 2020

У меня проблема с открытием ссылки в новой вкладке. Тем не менее, он отлично работает при разработке со следующим кодом:

главное меню. js

export class ReportsPopover extends Component {
render() {
   var agencyId = AgencyInfo.getSelectedAgencyId();
   var url = '/pqi-graph?agencyId='+ agencyId;
   const menu =
    <Menu>
      <MenuDivider title="Reports" />
        <MenuItem style={{ overflowX: "visible" }} fitted key="Reports" text="Performance Forecast">                              
           <Link to={url} target="_blank" style={{ overflowX: "visible", color: 'black' }}>
                    <MenuItem 
                        fitted key="pqi"
                        text="PQI Graph"/>
           </Link>
       </MenuItem>                
    </Menu>;

index. js

import PQIGraph from './reports/pqi-graph';
<Route path="/pqi-graph" component={PQIGraph} />

Config. json

{
  "server": "http://localhost:3001",
  "homeUrl": "http://localhost:3000",
 "pqi-graph": "http://localhost:3000/pqi-graph",
  "dev": true,
  "homepage":  "/"
}

Перед тем, как поместить команду npm run build Я изменяю свой файл конфигурации. js следующим образом:

{
  "server": "http://example.com:3001",
  "homeUrl": "http://example.com/xyz",
 "pqi-graph": "http://example.com/pqi-graph",
  "dev": true,
  "homepage":  "/xyz"
}

package. json {"name": "grit-app","homepage": "/xyz",}

Я помещаю содержимое папки моей сборки в каталог xyz. Когда я пытаюсь открыть страницу в процессе производства, она дает мне 404. Любая помощь будет по достоинству оценена. Спасибо

1 Ответ

0 голосов
/ 03 марта 2020

когда вы размещаете сайт в iis, вам нужно использовать папку сборки в качестве пути к папке сайта.

также вам может понадобиться установить реакционную колею с помощью правила перезаписи URL iis:

<rule name="Imported Rule 1" stopProcessing="true">
                <match url="^" ignoreCase="false" />
                <conditions logicalGrouping="MatchAny">
                    <add input="{DOCUMENT_ROOT}{URL}" matchType="IsFile" ignoreCase="false" />
                    <add input="{DOCUMENT_ROOT}{URL}" matchType="IsDirectory" ignoreCase="false" />
                </conditions>
                <action type="None" />
            </rule>
            <rule name="Imported Rule 2" stopProcessing="true">
                <match url="^" ignoreCase="false" />
                <action type="Rewrite" url="/path/to/subfolder/index.html" />
            </rule>
...