在文件共享上部署Blazor Web应用程序

Dav*_*vid 5 blazor

Blazor可用于创建客户端C#脚本编写的网页。我已经在各个地方(例如MSDN Magazine文章)阅读过文章,这些地方一旦建立,便可以将文件放在任何服务器上。我的理解是,也可以将工件放置在文件共享上。

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

当我index.html在的WebApplication1\bin\Debug\netstandard2.0\publish\WebApplication1\dist帮助下打开在路径下生成的时,dotnet publish我在Web浏览器中仅看到一个文字“ Loading ...”。

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

dan*_*era 1

你说:

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

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

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

<base href="/" /> 
Run Code Online (Sandbox Code Playgroud)

<base href="/your_path/" />
Run Code Online (Sandbox Code Playgroud)

在页面上index.html

来自文档:

应用程序基本路径是服务器上的虚拟应用程序根路径。例如,驻留在 Contoso 服务器上的虚拟文件夹中的应用程序/CoolBlazorApp/位于 处https://www.contoso.com/CoolBlazorApp,并且具有虚拟基本路径/CoolBlazorApp/