Как определить статические файлы как маршруты на статическом веб-сайте Azure? - PullRequest
0 голосов
/ 06 февраля 2019

Мой пример использования - статический лазурный сайт с глубокими ссылками.Я хотел бы, чтобы мой сайт Azure возвращал мою страницу index.html, когда определенные URL-адреса называются, например, / t / 2

. Я могу сделать это при использовании ASP.NET для обслуживания приложения, добавив следующее в мой маршрут

routes.MapRoute(
            name: "DeepLink",
            url: "t/{*id}",
            defaults: new { controller = "Home", action = "Index" }
        );

Я бы хотел добиться того же, но со статическим сайтом.Я могу добавить Web.config, который я могу использовать для перенаправления / перезаписи моего URL, но я хочу, чтобы URL оставался как / t / 2, чтобы интерфейс мог реагировать на него.

Ответы [ 3 ]

0 голосов
/ 06 февраля 2019

Если со статического веб-сайта вы ссылаетесь на веб-сайты хранилища Azure , вы можете указать пользовательский 404-й HTML-файл, который может обслуживать небольшой фрагмент JavaScript, который перенаправляет обратно в index.html (как указал Сэм).

Если статический веб-сайт находится в службе приложений Azure, вы можете добавить этот фрагмент в свой файл web.config:

<system.webServer>
    <rewrite>
      <rules>        
        <rule name="Main Rule" stopProcessing="true">
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="/" />
        </rule>
      </rules>
    </rewrite>
</system.webServer>

0 голосов
/ 03 апреля 2019

Просто имел ту же проблему и наткнулся на эту тему -

Так как сайт Static не имеет представления ни о каких маршрутах, кроме основного - он всегда будет по умолчанию не найден для любого базового маршрута.

Но в SPA у вас нет статического документа 404, ваш index.html справится с этим за вас.

Поэтому единственное, что вам нужно сделать, это указать индекс.html как документ 404, и все, кажется, работает.

0 голосов
/ 06 февраля 2019

Если вы используете статическое веб-приложение, то у вас нет доступа к какому-либо серверному коду для маршрутизации, вам нужно будет делать все это на стороне клиента.Вам нужно будет использовать библиотеку Javascript или аналогичную, которая будет поддерживать это.

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