使用 NET7 api 反應應用程式 - 在一個網站上重寫 URL
P粉752826008
P粉752826008 2024-01-10 17:38:54
0
1
333

我正在嘗試在一個 IIS 網站上託管具有 NET7 api 的 React 應用程式。根資料夾中有這樣的檔案結構

  • index.html
  • 其他檔案js/css
  • api/my-app.exe(在子資料夾 api 中包含所有 .NET api 二進位檔案)

Api 可以工作,因為我請求 /api/status healthcheck 方法,它返回 200。但是當我請求 /index.html 時,我得到 404 (未找到)

你知道我應該如何設定重寫規則或以其他方式配置它來取得 index.html 檔案

這是我的 web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath=".\api\my-app.exe" arguments=".\api\my-app.dll" stdoutLogEnabled="true" stdoutLogFile=".\iis-logs\" hostingModel="OutOfProcess" />
        <directoryBrowse enabled="false" />
        <httpErrors errorMode="DetailedLocalOnly" existingResponse="Auto" />
        
        <rewrite>
            <rules>
                <clear />
                <rule name="Stop process React routes" stopProcessing="true">
        TODO: how to write rule to get index.html file ??
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

P粉752826008
P粉752826008

全部回覆(1)
P粉564301782

您可以嘗試修改web.config檔案中的重寫規則。以下是如何設定重寫規則來服務 React 應用程式的 index.html 檔案和其他靜態資源:

<rewrite>
         <rules>
             <rule name="Serve React App" stopProcessing="true">
                 <match url=".*" />
                 <conditions logicalGrouping="MatchAll">
                     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                 </conditions>
                 <action type="Rewrite" url="/index.html" />
             </rule>
         </rules>
     </rewrite>

您需要根據您的特定專案結構和需求調整路徑和配置。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板