这是可能的,但我认为不是正确的方法。
我有一个普通的问题,当我在开发模式下构建我的角度项目并将dist文件复制到服务器文件夹中时,当更改服务器URL时,找不到端点url进行更改,因此我必须使用新的端点URL重建我的项目。
我如何在外部文件中定义webapi的端点,以便将来动态地使用,通常将其像下面这样存储在environment.prod.ts
中?>
export const environment = { production: true, serverBaseUrl: 'http://example.com' };
并使用命令
this.http.get(environment.serverBaseUrl + '/api/...')
调用服务文件>
我有一个普通的问题,当我在开发模式下构建我的角度项目并将dist文件复制到服务器文件夹中时,当更改服务器URL时,我找不到端点URL来对其进行更改,所以我必须...]]
这是可能的,但我认为不是正确的方法。
a)如果您使用的是容器和mircroservice,则最好使用相对的URL,例如“ ../api-service/login”。如果此api的根目录不同,则可以设置代理或负载平衡器。
b)另一种方法是设置占位符serverbaseUrl:'xxxxxx',deploy-script可以替换已编译的min.js文件中的xxxxxx。我不喜欢这种方式,但是效果很好。
c)可以将json配置文件放入资产文件夹asset / config / urls.json中。可以在启动时加载(应用程序组件)。可以通过静态forRoot()将这些url设置为每个服务。 forRoot必须由您实现。AppComponent构造函数:
authAjaxService.forRoot(theJsonResponse);
和
@Injectable() export class AuthAjaxService { private static readonly config = { loginUrl: 'assets/mock-data/auth/login.json', logoutUrl: 'assets/mock-data/auth/logout.json', }; static forRoot(config) { Object.assign(this.config, config); } login(loginData: LoginRequestData): Observable<LoginResponseData> { const url = AuthAjaxService.config.loginUrl; return this.http.post<LoginResponseData>(url, loginData); } ...
c)将使您的应用启动速度变慢,因为您需要通过ajax调用来获取配置。
这是可能的,但我认为不是正确的方法。