5

Blazor 可用于创建客户端 C# 脚本网页。我在不同的地方(如MSDN 杂志文章)阅读过,一旦构建,我就可以将文件放在任何服务器上。我的理解是,将工件放在文件共享上也应该是可能的。

然而,这不是我观察到的。在我通过 Visual Studio 中的模板创建的 Blazor Web 应用程序的项目目录中运行dotnet run使 kestrel 网络服务器启动,我可以通过指定的http://localhost:port/地址访问工作网页。

当我在我的网络浏览器的帮助index.html下打开路径下生成的文件时,我只看到一个文本说“正在加载...”。WebApplication1\bin\Debug\netstandard2.0\publish\WebApplication1\distdotnet publish

我已经研究过了index.html,乍一看,它看起来像_framework/blazor.webassembly.js匹配目录结构的路径。问题在哪里?

4

2 回答 2

1

你说:

当我在 dotnet publish 的帮助下打开在 WebApplication1\bin\Debug\netstandard2.0\publish\WebApplication1\dist 路径下生成的 index.html 时,我只在我的网络浏览器中看到一条“正在加载...”的文本.

这是因为 Blazor 期望在根路径上定位 dll。我的意思是,如果您将内容复制到distWeb 服务器的根目录上,一切都会正常工作,但如果您将其复制到根目录的“子文件夹”上,则一切正常。

如果您想从路径(而不是从根)提供文件,那么您应该设置应用程序基本路径,我的意思是,更改:

<base href="/" /> 

<base href="/your_path/" />

index.html页面上。

来自文档:

应用程序基本路径是服务器上的虚拟应用程序根路径。例如,可以访问位于 Contoso 服务器上虚拟文件夹中的应用程序,/CoolBlazorApp/https://www.contoso.com/CoolBlazorApp虚拟基路径为/CoolBlazorApp/.

于 2018-11-18T14:21:35.823 回答
0

我在文件夹上启动了一个带有端口号的 HTTP 服务器,并且该应用程序在http://localhost:4565/之类的 URL 上运行良好。使用了这个 HTTP 服务器代码。但总的来说,任何 HTTP 服务器都可以正常工作。

于 2019-06-11T21:23:52.310 回答