YourWeather icon indicating copy to clipboard operation
YourWeather copied to clipboard

Blazor Serer打包部署后会出现定位的那个js 404,并且主页面显示的时间不对

Open Hdurian-CH opened this issue 2 years ago • 12 comments

Hdurian-CH avatar Jul 19 '23 09:07 Hdurian-CH

可以提供更详细的信息吗,我这边尝试了一下,似乎没有问题

Yu-Core avatar Jul 19 '23 09:07 Yu-Core

打包发布之后用浏览器打开部署的域名,主页面报空引用异常,控制台显示/wwwroot/_content/Darnton.Blazor.DeviceInterop/js/geolocation.js资源404

Hdurian-CH avatar Jul 19 '23 09:07 Hdurian-CH

打包后的路径里wwwroot_content\Darnton.Blazor.DeviceInterop\js,把Geolocation.js换成小写试试。

Yu-Core avatar Jul 19 '23 09:07 Yu-Core

我试过改小写了,还是不行

Hdurian-CH avatar Jul 19 '23 09:07 Hdurian-CH

模仿maui那个项目,复制粘贴一个GeolocationService.cs,把它作为依赖注入。 builder.Services.AddScoped<IGeolocationService, YourWeather.Server.Services.GeolocationService>();

Yu-Core avatar Jul 19 '23 09:07 Yu-Core

我发现还有个问题,server打包之后拿不到那个location.json,得把Rcl里面的location.json复制到server的root下,不然addlocation页面就报错了

Hdurian-CH avatar Jul 19 '23 13:07 Hdurian-CH

确实有这个问题,之前没有打包过Server,在Debug中是没问题的,我想想办法

Yu-Core avatar Jul 19 '23 13:07 Yu-Core

#if DEBUG
            var uri = $"{AppContext.BaseDirectory}/wwwroot/{baseUri}";
#else
            var uri = $"{AppContext.BaseDirectory}/wwwroot/_content/YourWeather.Rcl/{baseUri}";
#endif

这么写就可以,或者判断第一个路径是否存在,如果不存在就用第二个。 我更新了一下,把读取json文件的方法抽离了出来。

Yu-Core avatar Jul 19 '23 15:07 Yu-Core

想请教以下,就以这个weather项目,server模式下在天气页面不断刷新,内存一直都在涨怎么解决

Hdurian-CH avatar Jul 21 '23 07:07 Hdurian-CH

server模式每一次刷新都是建立一个新的连接,这个连接是需要服务端维护的,所以内存涨是正常的。

Yu-Core avatar Jul 21 '23 08:07 Yu-Core

Server模式我用的不多,可能理解不到位。

Yu-Core avatar Jul 21 '23 08:07 Yu-Core

https://learn.microsoft.com/zh-cn/aspnet/core/blazor/host-and-deploy/server?view=aspnetcore-7.0#memory-management

官方文档里似乎有所提及

Yu-Core avatar Jul 21 '23 08:07 Yu-Core