我正在开发Angular 6中的一个应用程序。当该应用程序部署时,它会与一个在线数据库交换数据。然而,当我在应用程序上工作时,我希望它能与本地数据库交换数据。我有一个单一的服务设置来完成所有的通信,所以当我在应用程序上工作时,我可以简单地更改基本URL,但我想知道是否有一种方法可以在开发过程中重定向该服务,然后让它像生产环境中的正常情况一样转到数据库。
我知道我可以添加一个proxy.conf.json文件,我已经在这样做了,以便访问一个单独的在线应用程序接口,所以我不知道它是否像向该json文件添加另一个元素一样简单。
我没有发布任何示例代码,因为这是一个关于angular中的方法论与特定代码行问题的更一般的问题,但我很乐意发布人们希望看到的任何澄清。
发布于 2020-04-15 19:18:14
你可以做一件事,
您可以在environment.ts和environment.prod.ts中配置url,如下所示
environment = {
...
url: 'something.com/api',
...
}并像这样使用它
import { environment } from 'environment/environment';
const url = environment.url;这将为正常构建提供不同的url (开发环境)。和prod build (部署环境)
另外,不用担心在import语句中只使用environmet.ts,因为在创建prod build时,environment.ts会从environment.prod.ts获取内容。因此,您将使用来自environment.prod.ts的url
发布于 2020-04-15 18:38:12
在Angular中,你可以访问一个函数isDevMode(),它可以确定应用程序当前是否处于开发模式。
在此基础上,您应该能够根据需要调整您的基本url。
import { isDevMode } from '@angular/core';
private baseUrl: string = '';
const devUrl: string = '...';
const prodUrl: string = '...';
if (isDevMode()) {
this.baseUrl = devUrl
}
else {
this.baseUrl = prodUrl
};https://stackoverflow.com/questions/61226601
复制相似问题