开发者问题收集

Blazor WASM - IIS 上的独立部署

2020-10-26
3697

我正尝试在 IIS 上部署 Blazor WASM 应用,请按照 此处 的说明操作。

  • 这只是开箱即用的示例 Blazor WASM 应用
  • 我已将应用发布到文件夹
  • 我已将 URL 重写模块添加到 IIS
  • 我已将动态压缩支持添加到 IIS
  • 我在默认网站中创建了一个新的 Web 应用,并将其指向我发布 Blazor 应用的文件夹

调用该应用会生成一个页面,其中包含“发生了未处理的错误。重新加载”。

查看浏览器开发工具中的请求,index.html 正在从 wwwroot 文件夹获取,表明 url 重写规则正在触发,但 css/bootstrap.min.css、_framework/blazor.webassembly.js 和 css/app.css 的请求全部失败,状态为 404 - 未找到。

我遗漏了什么?

Windows 10 2004。

1个回答

尝试在您的 index.html 文件中设置基本路径:

<base href="/CoolApp/">

以下是 iis 应用程序文件夹路径:

在此处输入图像描述

您可以将其设置为您的发布文件夹。

web.conifg 文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <staticContent>
      <remove fileExtension=".dat" />
      <remove fileExtension=".dll" />
      <remove fileExtension=".json" />
      <remove fileExtension=".wasm" />
      <remove fileExtension=".woff" />
      <remove fileExtension=".woff2" />
      <mimeMap fileExtension=".dll" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".dat" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".json" mimeType="application/json" />
      <mimeMap fileExtension=".wasm" mimeType="application/wasm" />
      <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
      <mimeMap fileExtension=".woff2" mimeType="application/font-woff" />
    </staticContent>
    <httpCompression>
      <dynamicTypes>
        <add mimeType="application/octet-stream" enabled="true" />
        <add mimeType="application/wasm" enabled="true" />
      </dynamicTypes>
    </httpCompression>
    <rewrite>
      <rules>
        <rule name="Serve subdir">
          <match url=".*" />
          <action type="Rewrite" url="wwwroot\{R:0}" />
        </rule>
        <rule name="SPA fallback routing" stopProcessing="true">
          <match url=".*" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          </conditions>
          <action type="Rewrite" url="wwwroot\" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

索引文件:

在此处输入图像描述

输出:

在此处输入图像描述

注意:确保为站点文件夹分配了 iis_iusrs 和 iusr 权限。

https://learn.microsoft.com/en-us/aspnet/core/blazor/host-and-deploy/?view=aspnetcore-3.1&tabs=visual-studio

Jalpa Panchal
2020-10-27