2017-05-13 6 views
0

조언을 구합니다. 각도 응용 프로그램을 개발하고 각도 cli를 사용하고 있습니다. 이 응용 프로그램은 IIS 서버 중 하나에 배포됩니다. 각 제작 파일은 같은 폴더에있는 web.config (.NET) 파일 내에 있습니다. Angular 프로덕션 빌드의 web.config 파일에서 일부 변수 (예 : OAuth 매개 변수 또는 프록시 구성 URL)를 읽을 수 있기를 바랍니다. 그것이 어떻게 구현 될 수 있는지 어떤 생각? 감사합니다각도를 시작하기 전에 "설정 파일"에서 구성 변수를 읽습니다. 각도 cli를 통해 빌드 된 앱

답변

0

불행히도 web.config은 서버 쪽 응용 프로그램에만 사용되므로 추가 서버 측 코드 (예 : dotnet 응용 프로그램 내에서 호스팅 및 웹 API를 통해 설정 노출)와 같이 실제로 가능하지 않습니다.

즉시 사용 가능하며 @angular/cli은 컴파일 시간 속성 설정을 사용합니다. 이는 불편하고 문제가 될 수 있습니다 (키를 배포 가능한 코드에 묶어야하며, 필요한 경우 설정을 다시 빌드해야합니다. 환경 간 변경).

이 문제를 해결하는 가장 일반적인 방법은 특정 환경 인 config.json을 만든 다음 배포시이를 덮어 쓰는 것입니다. 따라서 예를 들어, 당신은 할 것이다 :

  • dev.config.json
  • test.config.json
  • prod.config.json

을 그리고 배치시에 당신은 단지에에 config.json을 통해 올바른 파일 이름을 변경하고 링크 것이다 당신의 index.html.

이 설정은 다른 파일에 설정을 복사하는 것을 의미하지만이 방법은 문제를 해결하는 가장 편리한 방법이며 실행시에 변경할 수있는 유연성을 제공합니다 (파일의 존재에주의하십시오. 캐시 됨).

+0

감사합니다! 지금은 .Net Core "empty"앱을 만들고 Angular 2를 추가하려고합니다. 이 응용 프로그램은 IIS 서버에서 제공됩니다. 내가 언급 한 것을 구현할 수있는 방법을 물어봐도 되겠습니까? web.config는 서버 측 응용 프로그램에만 사용되므로 추가 서버 측 코드 (예 : dotnet 응용 프로그램 내에서 호스팅하고 웹 API를 통해 설정 노출)없이 사용할 수 있습니다. 정말로 가능하지 않을 것이다. " 나는 .Net 환경에서 아주 새롭다. – marekdano

+0

물론, 당신이해야 할 일은 web.config에서 값을 읽고 각도 앱으로 반환하는 웹 API 메소드를 추가하는 것입니다. 앵귤러 앱은 시작할 때 해당 메소드로 http 호출을해야합니다. – mikegeyser

+0

고맙습니다. .Net 녀석에게 봐야 해.나는 또한 당신이 언급 한 두 번째 접근 방식으로 놀고있다. 내 Angular 앱과 동일한 도메인에 있지 않은 WebAPI가 있습니다. 내 개발에서는 각도 -cli 프록시를 사용합니다. – marekdano

1

각도 응용 프로그램을 설정하고 포장하고 번들하는 방법을 더 자세히 제어해야하는 경우 을 꺼내보십시오.

이렇게하면 ng 프로젝트의 기본 구성으로 webpack 구성 파일이 생성됩니다. 그런 다음 빌드 전에 변수 및 매개 변수를 수정할 수 있습니다.

주의 :이 방법을 사용하면 cli에서 ng 명령을 사용할 수 없습니다.

은 (당신이 eject: true각-cli.json 내부 eject: false에 변경하면 다시 활성화 할 수 있습니다. 그러나, 겨 명령은 항상 웹팩 설정 파일을 무시합니다) 답변에 대한