部署问题:Azure 上的 Blazor 服务器 app+mongodb

Deployment problem: Blazor server app+mongodb on Azure

在开发中运行良好,但在 Azure 上发布时提示“无法加载资源”。

错误Failed to load resource: the server responded with a status of 404 (Not Found)表明我们没有正确配置所需的资源文件路径。如果我们没有在远程服务器 (Azure) 上提供准确的资源目录位置路径

示例:

您的文件位于 <host>/Root/subfolder 但您正在访问 <host>/Root/subfolder/child

解决问题的解决方法

我正在关注 Blog 来解决这个问题。根据我们托管的位置,我们可以更改基本路径。接下来是

<base />  
<script> 
    var path = window.location.pathname.split('/'); 
    var base = document.getElementsByTagName('base')[0]; 
    if (window.location.host.includes('localhost')) 
    { 
        base.setAttribute('href', '/'); 
    } 
    else if (path.length > 2) 
    { 
        base.setAttribute('href', '/' + path[1] + '/'); 
    } 
    else if (path[path.length - 1].length != 0) 
    { 
        window.location.replace(window.location.origin + window.location.pathname + '/' + window.location.search); 
    } 
</script>

删除了默认 href 属性并动态添加

我想我已经修好了。 2 件事:

  1. 在 mongoDB 方面,默认情况下 mongodb 阻止从所有 IP 地址访问数据库,这就是为什么当您第一次创建集群时它会询问您的 IP 地址。同样的事情也适用于 Azure。你需要去app service -属性找到你的app的虚拟IP地址。复制粘贴到mongoDB.
  2. 上的白名单
  3. 在 Azure 端,重定向 URL 是生产前的本地主机地址。为了让它在生产后重定向到登录页面,复制它并替换 localhost 部分。您可以添加另一个 URL,这样身份验证仍然适用于您的本地调试。