加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Blazor:管理环境特定变量

发布时间:2020-12-15 22:55:11 所属栏目:百科 来源:网络整理
导读:如何管理客户端blazor环境中不同的访问变量?通常,因为我使用Azure来发布应用程序,所以我将appsettings.json文件用于本地应用程序设置,然后在App Service的Azure Application Settings部分中设置条目,以获取本地环境和其他环境之间不同的条目. 我想要完成的
如何管理客户端blazor环境中不同的访问变量?通常,因为我使用Azure来发布应用程序,所以我将appsettings.json文件用于本地应用程序设置,然后在App Service的Azure Application Settings部分中设置条目,以获取本地环境和其他环境之间不同的条目.

我想要完成的一个例子:

客户端Blazor:

@functions {
    //...more code here
    await Http.PostJsonAsync<object>("http://localhost:50466/api/auth/register",vm);
}

在部署的Web服务器上,这应该转换为:

@functions {
    //...more code here
    await Http.PostJsonAsync<object>("http://wwww.mywebsite.com/api/auth/register",vm);
}

所以我正在寻找一种方法来将站点根URL存储在环境变量中,并在发布时对其进行转换. Blazor-ey有没有办法做到这一点?

解决方法

有多种方法可以做到这一点,

I believe there is no any official method documented yet!

我的建议是使用好的旧方法,为不同的环境使用多个配置文件,并仅复制要在预期的环境中使用的配置文件.

在解决方案文件夹中创建一个名为env的文件夹.并创建名为dev和prod的子文件夹.如下.

|- env
   |- dev
   |- prod
   |

将您的不同配置文件(具有相同名称和不同配置的文件)放在dev和prod文件夹中.

创建批处理文件以将appropreate环境复制到wwwroot文件夹. (我比下一步更喜欢这个,这对CI很友好,不需要在构建服务器中安装Visual Studio)

要么

将以下代码添加到Blazor项目的post-build事件中

if $(ConfigurationName) == Debug (
  copy /Y "$(ProjectDir)envdev*" "$(TargetDir)wwwroot"
) ELSE (
  copy /Y "$(ProjectDir)envprod*" "$(TargetDir)wwwroot"
)

由于您的配置文件位于www文件夹中,因此您可以通过打开文件并阅读其中的内容来轻松地从blazor应用程序中引用它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读