Я использую последнюю предварительную версию приложения Blazor, размещенного на WebAssembly (WASM). Я установил приложение, размещенное в WASM, и настроил его для использования базового href
из /App1/
внутри файла wwwroot/index.html
папки клиентского приложения:
<base href="/App1/" />
На этом этапе мое приложение структура выглядит так:
- Клиент
- Сервер
- Общий
Затем я сопоставил приложение в папке серверного приложения с route:
app.Map("/app1", app1 =>
{
app1.UseHttpsRedirection();
app1.UseBlazorFrameworkFiles();
app1.UseStaticFiles();
app1.UsePathBase("/app1");
app1.UseRouting();
app1.UseIdentityServer();
app1.UseAuthentication();
app1.UseAuthorization();
app1.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapControllers();
endpoints.MapFallbackToFile("index.html");
});
});
Запуск с парой изменений настроек запуска для сопоставления с /app1
работает fantasti c. Затем я скопировал клиентское приложение и изменил пространство имен и csproj
на App2
.
Моя структура приложения теперь будет:
- App1 (клиентское приложение)
- App2 (Клиентское приложение)
- Сервер
- Общий
Я установил базовый href
на /App2/
, и добавил второе сопоставление в при запуске сервера:
app.Map("/app1", app1 =>
{
app1.UseHttpsRedirection();
app1.UseBlazorFrameworkFiles();
app1.UseStaticFiles();
app1.UsePathBase("/app1");
app1.UseRouting();
app1.UseIdentityServer();
app1.UseAuthentication();
app1.UseAuthorization();
app1.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapControllers();
endpoints.MapFallbackToFile("index.html");
});
});
app.Map("/app2", app2 =>
{
app2.UseHttpsRedirection();
app2.UseBlazorFrameworkFiles();
app2.UseStaticFiles();
app2.UsePathBase("/app2");
app2.UseRouting();
app2.UseIdentityServer();
app2.UseAuthentication();
app2.UseAuthorization();
app2.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapControllers();
endpoints.MapFallbackToFile("index.html");
});
});
Однако проект не запускается. Он жалуется, что файлы stati c все еще объединены. Я получаю эту ошибку компиляции при попытке запустить серверный проект с dotnet run
:
/usr/local/share/dotnet/sdk/3.1.201/Sdks/Microsoft.NET.Sdk.Razor/build/netstandard2.0/Microsoft.NET.Sdk.Razor.StaticWebAssets.targets(191,5): error : Conflicting assets with the same path '/appsettings.Development.json' for content root paths '/Users/user/Developer/WasmHosted/App1/wwwroot/appsettings.Development.json' and '/Users/user/Developer/WasmHosted/App2/wwwroot/appsettings.Development.json'.
Я также пробовал добавить commandLineArgs
, чтобы изменить местоположение root содержимого в launchsettings
из клиентские приложения без эффекта:
"commandLineArgs": "--contentroot=/app1",
Любые предложения были бы очень признательны, так как я не знаю, что еще попробовать.
Это команда dotnet new
, которую я использовал для создать проект
dotnet new blazorwasm -au Individual -ho -n WasmHosted