Правило перезаписи web.config не работает на статическом веб-сайте Azure в хранилище больших двоичных объектов - PullRequest
2 голосов
/ 09 апреля 2019

У меня есть одностраничное приложение React, размещенное в хранилище BLOB-объектов Azure, но я получаю Запрошенное содержимое не существует. Ошибка при глубокой ссылке на страницу:

enter image description here

У меня включена статическая опция веб-сайта в учетной записи хранения:

enter image description here

Все файлы размещены в контейнере $ web:

enter image description here

Это включает в себя следующее web.config с правилом перезаписиэто должно позволить index.html обрабатывать всю маршрутизацию:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="React Routes" 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="/" appendQueryString="true" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

Кто-нибудь может увидеть, где я ошибся?

Ответы [ 2 ]

4 голосов
/ 13 июня 2019

Вы можете выполнить глубокое связывание, если вы укажете страницу 404 на свой index.html. Это не идеальное решение - имеет побочные эффекты - но оно будет работать в большинстве случаев.

enter image description here

1 голос
/ 10 апреля 2019

Статический веб-сайт в Azure Storage GPv2 отличается от службы приложений Azure.Он размещает только эти статические веб-файлы, которые включают файлы HTML / CSS / JavaScript, другие файлы можно обрабатывать в браузере, например изображения, robots.txt и т. Д. Он не может обрабатывать серверные сценарии из-за отсутствия IIS.Таким образом, ваш web.config файл не имеет смысла изменять маршрутизацию доступа и принадлежать серверному сценарию для IIS.

На самом деле вы можете видеть слова на портале Azure.

Настройка службы BLOB-объектов для статического хостинга веб-сайтов позволяет размещать статический контент в своей учетной записи хранения.Веб-страницы могут содержать статический контент и скрипты на стороне клиента. Сценарии на стороне сервера не поддерживаются в хранилище Azure. Подробнее

И ссылка Learn more Static website hosting in Azure Storage

В отличие от статического хостинга сайтов, динамические сайты, зависящие от серверного кода, лучше всего размещать с помощью службы приложений Azure.

Я рекомендовал использовать службу приложений Azureдля вашего приложения, если требуется функция перезаписи URL.

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