У меня есть статическое веб-приложение, развернутое в Azure. Мне нужно временно остановить его или перенаправить на что-то вроде offline.html с помощью Azure C# SDK. У меня есть экземпляр класса GenericResource, представляющего SWA. Как мне это сделать?
Похоже, я могу удалить SWA, но мне нужно иметь возможность более-менее мгновенно вернуть его обратно.
Я попробовал проверить Azure.ResourceManager.AppService
C# SDK, но способа остановить статический сайт не существует.
См. ниже: -
Ссылка MS Document
Кроме того, портал статических веб-приложений Azure не поддерживает никаких опций Stop
Azure Static Web app
.
Но вы можете перенаправить свой SWA на страницу offline.html, если не хотите, чтобы ваша главная страница отображала контент. Перенаправив главную страницу на автономную страницу и обновив Program.cs для маршрутизации всего трафика с корневого пути на offline.html, как показано ниже:
using BlazorApp3.Components;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorComponents();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseAntiforgery();
app.Use(async (context, next) =>
{
if (context.Request.Path == "/")
{
context.Response.Redirect("/offline.html");
}
else
{
await next();
}
});
app.MapRazorComponents<App>();
app.Run();
Мой репозиторий github1 для вывода выше.
Другой способ — добавить страницу Offline.Razor
или Offline.html
в исходный код и направить туда трафик, как показано ниже:
Мой репозиторий github2 с выводом Offline.razor
ниже
У SWA есть так называемый индексный файл, который по умолчанию — index.html. Я думал как-нибудь изменить индексный файл на offline.html.
Да, это тоже возможно, тогда вы также можете добавить маршрут к static.web.config в index.html.
У меня есть отдельное приложение C#, работающее в службе приложений, и мне нужно иметь возможность контролировать, запускать и останавливать SWA >> Запуск и остановка SWA невозможны, но запуск и остановка веб-приложения Azure возможны.
Большое спасибо за ваш ответ. Проблема в том, что в статическом веб-приложении нет никакого Blazor, это просто HTML и клиентский JavaScript. У меня есть отдельное приложение C#, работающее в службе приложений, и мне нужно иметь возможность контролировать, запускать и останавливать SWA.