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