Процесс выпуска VSTS предоставляет возможность замены переменных в файл JSON в рамках задачи развертывания IIS Site.
Мы используемэто для записи значения ServiceLocations.ApiBaseUri
в файл (~/clientconfig/settings.json
), который имеет следующее начальное содержимое, позволяющее локальную разработку:
{
"ServiceLocations": {
"ApiBaseUri": "https://localhost:44390"
}
}
В файле ASP.NET Core Startup.cs
мыстатически размещая этот файл, чтобы он был доступен для SPA:
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
Path.Combine(
Directory.GetCurrentDirectory(), "clientconfig")),
RequestPath = "/clientconfig"
});
Затем в SPA ApiService.ts
мы используем fetch для создания HTTP-запроса для файла настроек:
fetch("/clientconfig/settings.json", {
method: "GET",
credentials: "omit"
}).then(response => {
return response.json();
}).then(settings => {
this._apiBaseUri = settings.ServiceLocations.ApiBaseUri;
})