【问题标题】:How to get key from web.config in TypeScript?如何从 TypeScript 中的 web.config 获取密钥?
【发布时间】:2016-10-26 07:24:58
【问题描述】:

如何从 API 项目中的 web.config 获取密钥到我的 TypeScript UI 项目中?我已经尝试了以下方法,但没有任何东西可以访问我可以告诉的配置文件:

 apiUrl: string = '@System.Configuration.ConfigurationManager.AppSettings["ApiUrl"]';

这也不起作用:

 apiUrl: string = "@ConfigurationManager.AppSettings['ApiUrl']";

我也尝试了单引号或双引号的所有组合,但无济于事。关于如何从 TypeScript 中的 web.config 文件中获取值的任何见解?

【问题讨论】:

    标签: typescript web-config key


    【解决方案1】:

    尝试从其他程序集/项目访问配置文件通常不是一个好主意,因为它们在编译时通常不会输出到同一目录。

    由于 TypeScript 被转译为 JavaScript,因此无论配置文件位于何处,都无法直接从配置文件中读取。

    如果您想动态更改服务的 URL(例如从 DEV 端点更改为 QA 或生产端点),您可以在 HTML/CSHTML 文件中使用 Razor Syntax 来获取值从配置文件中,然后将值 inject 到脚本中,或者您可以在部署期间使用 Powershell 来替换 TypeScript 文件中的值在构建过程中。

    # Argument passed into PowerShell script (or write out URL string manually).
    $NewURL1 = $args[0];
    $NewURL2 = "http://goodURL.com/api";
    
    # *.js files, because your *.ts files will already be transpiled.
    $files = gci "C:\MyProject\DropFolder" -recurse -include "exampleWithBadURL.js", "otherFile.js";
    
    Foreach ($file in $files)
    {
        $fileContent = Get-Content($file) -Raw;
        attrib $file -r;
    
        # Perform the replacement.
        $fileContent -replace "http://localhost:38774/", $NewURL1 | Out-File $file;
        $fileContent -replace "http://badURL.com/api/", $NewURL2 | Out-File $file;
    
        Write-Output($file.FullName);
    }
    

    如果您的构建/发布代理允许,您可以在将代码部署到特定环境时运行此 Powershell 脚本。我在我的发布定义中的 VSTS/TFS 中使用了类似的脚本复制文件之后。

    【讨论】:

      猜你喜欢
      • 2021-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      相关资源
      最近更新 更多