在VS2022和MacOS上创建Blazor/Maui服务器应用程序时找不到静态文件



在VS2022 (Windows)上创建Blazor Server模板在Windows上运行良好。如果我发布到一个文件夹并以Windows为目标,我可以在另一台Windows机器上打开应用程序,一切都很好。如果我发布到一个文件夹,目标是OSX,我可以在Mac上打开应用程序,并加载HTML,但它无法找到CSS和图标,除非我从"发布"文件夹中复制文件。文件夹转到我在Mac上的主文件夹。同样的问题,如果我使用VS2022的MacOS。从IDE运行时可以正常工作,如果我发布它或从IDE外部运行应用程序,则不会加载CSS。

一直在寻找这个问题的答案,但我认为几乎没有人使用VS2022来创建针对MacOS的Blazor应用程序,哈哈!

有人遇到这个吗?我试着玩app.UsePathBase()和

我终于通过我哥哥找到了一个天才的。net程序员。他几分钟就想通了。它是如此简单,但却困扰了我很多年。

在program.cs:

中增加一行
webBuilder.UseContentRoot(AppContext.BaseDirectory);

老program.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
namespace MacOSBlazorApp1
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
}

:后

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
namespace MacOSBlazorApp1
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
webBuilder.UseContentRoot(AppContext.BaseDirectory);
});
}
}

我不知道为什么这必须在MacOS上添加,而不是Windows。不知何故,我猜MacOS上的默认值是不同的!

相关内容

  • 没有找到相关文章

最新更新