我向 Azure 应用服务发布了一个 Blazor Webassembly ASP.NET Core 托管网站,它在笔记本电脑浏览器上按预期工作。但是,如果我在移动设备(iOS Safari)上导航到它,它似乎只显示我的页面而不是我的 MainLayout.Razor 文件 - 也就是说,不显示。为什么会这样?谢谢
index.html 文件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>My Blazor App</title>
<base href="/" />
<link href="css/bootstrap/bootstrap.min.css" rel="stylesheet" />
<link href="css/app.css" rel="stylesheet" />
<script src="_content/BlazorContentEditable/BlazorContentEditable.js"></script>
<link href="manifest.json" rel="manifest" />
<link rel="apple-touch-icon" sizes="512x512" href="icon-512.png" />
</head>
<body>
<app>Loading...</app>
<div id="blazor-error-ui">
An unhandled error has occurred.
<a href="" class="reload">Reload</a>
<a class="dismiss"></a>
</div>
<script src="_framework/blazor.webassembly.js"></script>
</body>
</html>
App.razor
<Router AppAssembly="@typeof(Program).Assembly">
<Found Context="routeData">
<AuthorizeRouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
</Found>
<NotFound>
<CascadingAuthenticationState>
<LayoutView Layout="@typeof(MainLayout)">
<p>Sorry, there's nothing at this address.</p>
</LayoutView>
</CascadingAuthenticationState>
</NotFound>
</Router>
MainLayout.razor
@inherits LayoutComponentBase
<div class="main">
<div class="top-row px-4">
<LoginDisplay />
</div>
<div class="content px-4">
@Body
</div>
</div>
登录显示.razor
<AuthorizeView>
<Authorized>
<h1>Hello, @context.User.Identity.Name!</h1>
<a href="LogOut">Log out</a>
</Authorized>
<NotAuthorized>
<a href="/">Home</a>
<a href="Register">Register</a>
<a href="Login">Log in</a>
</NotAuthorized>
</AuthorizeView>
首先是笔记本电脑 chrome 浏览器上的屏幕截图。二是手机Safari浏览器截图
编辑
现在在玩了一下 app.css 文件之后,使用以下设置:
@media (max-width: 767.98px) {
.main .top-row {
display: flex;
justify-content: space-between;
padding: 5px 0;
}
.image {
width: 100%;
height: 100%;
}
.main .top-row a, .main .top-row .btn-link {
display: flex;
margin-left: 0;
justify-content: space-between;
padding: 5px 0;
}
}
iPhone SE 模拟器在开发模式下运行时完美运行。然而,发布它并没有在我的手机上导航到它。它看起来和以前完全一样。