#iis #blazor #blazor-webassembly
#iis #blazor #blazor-webassembly
Вопрос:
Я пытаюсь развернуть приложение Blazor WASM в IIS, следуя приведенным здесь инструкциям.
- Это всего лишь готовый образец приложения Blazor WASM
- Я опубликовал приложение в папке
- Я добавил модуль перезаписи URL в IIS
- Я добавил поддержку динамического сжатия в IIS
- Я создал новое веб-приложение на веб-сайте по умолчанию и указал на папку, в которой я опубликовал приложение 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 для папки сайта.
Комментарии:
1. Добавление пути к приложению в тег <base> сделало свое дело — спасибо!