Net Core Razor Pages - 注销后的 Microsoft Identity Web 包破坏了网站图像链接

Net Core Razor Pages - Microsoft Identity Web Package after Sign-out is breaking website image links

这是个很奇怪的问题。

安装 Microsoft Identity Web nuget 包并使用剃须刀页面设置应用程序后,当我按照 MS 注销例程重定向回应用程序时,我发现徽标图像不再显示在导航栏上。

这似乎是因为 Microsoft Identity Web 包在注销后更改了页面的 URL 即它引用了一个注销页面,该页面现在作为隐藏在一个包中的烘焙包的一部分提供MD dll 文件的数量。

我的本机 javascript 代码正在尝试从位于我的 wwwroot 文件夹结构的根目录中的我的图像文件夹加载徽标图像,但是因为注销页面正在更改 URL 结构为剃刀页面添加不同的路径引用,它丢失了图像所需的路径,不确定如何解决这个问题?

加载图片的js代码:

document.getElementById("navbarLogo").src = 'Images/CompanyLogos/Logo-LightTheme543by140px.png';

当我正常登录或只是在登录前浏览站点时,此图像显示正常,因此只有在 MS 退出身份验证流程后重定向回站点后才会出现此问题。

错误显示404,说明图片没有找到,没有被身份屏蔽。图片 url 可能在布局中,但退出页面可能未正确引用布局,或者未正确设置相对路径。如果不是问题,你可以分享这个页面代码。

最后我得出了以下解决方案,满足了我的需求:

// Because I'm using nested folders for the razor pages
// directory then I needed to re-construct the url path to
// to the images folder on wwwroot.
var urlPath = window.location;
var domain = window.location.hostname;
var port = window.location.port;
var baseUrl = 'https://' + domain + ':' + port;

然后使用上面的:

document.getElementById("navbarLogo").src = baseUrl + '/Images/CompanyLogos/Logo-LightTheme543by140px.png';

不是最干净的解决方案,但对我来说仍然有效...