我创建了一个新的ASP.NET Core 3.0 Web应用程序,并选择了Model-View-Controller选项。我想添加Blazor服务器端,因此将以下内容添加到Startup.cs文件中。
services.AddServerSideBlazor();
endpoints.MapBlazorHub();
并添加了脚本文件
<script src="_framework/blazor.server.js"></script>
在我的布局文件中。
我创建了一个简单的组件来显示我在文本框中输入的内容,并将该组件添加到我的Index.cshtml
视图中。它可以在Visual Studio中运行,但是当我将其推送到内部2016服务器时,会呈现该组件,但不会显示文本。该应用似乎找不到blazor.server.js
文件。
是否缺少其他一些部署步骤来提升JS文件?
答案 0 :(得分:7)
就我而言,
app.UseStaticFiles(new StaticFileOptions
{
ServeUnknownFileTypes = true,
DefaultContentType = "application/octet-stream"
});
是引起问题的原因。替换为:
app.UseStaticFiles();
解决了问题。我发现问题可能出在DefaultContentType
。
任何人都知道为什么会发生这种情况,请更新此答案。
答案 1 :(得分:3)
最后弄清楚了,我不得不在“ _Layout.cshtml”的开头部分添加<base href="~/" />
。
答案 2 :(得分:1)
https://docs.microsoft.com/en-us/aspnet/core/blazor/fundamentals/static-files?view=aspnetcore-5.0
在 Startup.Configure (Startup.cs) 中使用两次对 UseStaticFiles 的调用:
在第一次调用中使用 StaticFileOptions 配置自定义文件提供程序。 第二个中间件提供 blazor.server.js,它使用 Blazor 框架提供的默认静态文件配置。 C#
using Microsoft.AspNetCore.StaticFiles;
...
var provider = new FileExtensionContentTypeProvider();
provider.Mappings["{EXTENSION}"] = "{CONTENT TYPE}";
app.UseStaticFiles(new StaticFileOptions { ContentTypeProvider = provider });
app.UseStaticFiles();
答案 3 :(得分:0)
由于blazor.server.js
是静态文件,因此请确保在app.UseStaticFiles();
中添加startup.cs
。