我想征求意见。 我正在开发一个角度应用程序并使用角度cli。该应用程序将部署在其中一个IIS服务器上。角度生产文件将位于同一文件夹中的web.config(.NET)文件中。我希望能够从Angular生成版本中的web.config文件中读取一些变量(例如OAuth参数或代理配置URL)。知道如何实施它吗?感谢
答案 0 :(得分:1)
如果您需要更好地控制Angular应用程序的设置,打包和捆绑方式,您可以尝试弹出它。
这将生成一个webpack配置文件,其中包含ng项目的默认配置。之后,您可以在构建之前修改变量和参数,而不仅仅是。
请注意,这会禁用cli中 ng 命令的使用。
(如果您在 angular-cli.json 中将eject: true
更改为eject: false
,则可以重新激活。但是,ng命令将始终忽略webpack配置文件)
答案 1 :(得分:0)
不幸的是,web.config
仅用于服务器端应用程序,因此没有额外的服务器端代码(例如托管在dotnet应用程序中,并通过Web API公开设置),它真的不会有可能。
开箱即用,@angular/cli
使用编译时属性设置,这可能令人沮丧和有问题(您需要将密钥捆绑到可部署代码中,并重建包,如果环境之间需要改变的设置)。
最常见的方法是创建特定于环境的config.json
文件,然后在部署时覆盖该文件。因此,例如,您将拥有:
dev.config.json
test.config.json
prod.config.json
然后在部署时,您只需将正确的文件重命名为config.json
并在index.html中链接到该文件。
我知道这可能意味着将设置复制到不同的文件中,但它是解决问题的最有效方法 - 并且确实为您提供了在运行时更改的一定程度的灵活性(请注意正在缓存的文件)。