angular-cli 도구의 --base-href 및 --deploy-url 매개 변수의 차이점은 무엇입니까?


89

Angular의 문서 --base-href는 서버의 하위 폴더에 배포 될 때 프로덕션 용 Angular 애플리케이션 빌드에서 매개 변수를 사용해야한다고 알려줍니다 .

파일을 서버 하위 폴더에 복사하는 경우 빌드 플래그를 추가 --base-href하고 <base href>적절하게 설정하십시오 .

예를 index.html들어가의 서버에있는 /my/app/index.html경우 기본 href를 <base href="https://stackoverflow.com/my/app/">이와 같이 설정하십시오 .

https://angular.io/guide/deployment

그러나 angular-cli에는 --deploy-url매개 변수가 있습니다. 도구 설명서는 다음과 같이 설명합니다.

파일이 배포 될 URL입니다.

https://github.com/angular/angular-cli/wiki/build

응용 프로그램이 서버의 하위 폴더에 배포 될 때 --deploy-urlinsted 를 사용하는 솔루션을 보았습니다 --base-href.

질문

angular-cli 도구의 --base-href--deploy-url매개 변수의 차이점은 무엇입니까 ? 각각은 언제 사용해야합니까?

답변:



26

내 스크립트를 " / test / app1 / script / "폴더에 넣으려면 다음 명령을 사용합니다 .

ng build --prod --base-href /test/app1/ --deploy-url /test/app1/script/

따라서 내 앱은 https://example.com/test/app1/ 에서 액세스 할 수 있지만 내 JS 스크립트와 CSS는 https://example.com/test/app1/script/ 디렉토리에 있습니다.


이것은 훌륭한 대답이지만 모듈의 지연로드에 영향을 미칠 수 있다는 점에주의하십시오. 예 : { path: 'myModule', loadChildren: () => import( './myModule/my.module' ).then( m => m.MyModule ) }
Ken Hadden

9

/ users를 라우터의 애플리케이션 기반으로 사용하고 / public을 자산의 기반으로 사용하려는 경우.

ng build --prod --base-href /users --deploy-url /public 

자세한 예는 Shekhar Gulati의 블로그를 참조하십시오 .


나는이 문제와 비슷한이 스레드를 따르고 있습니다. 다음은 내 명령입니다. "ng build --watch = true --baseHref = / dist / --outputPath = D : \ application_root \ dist --deployUrl = / dist /". 내가 말하려는 것은 application_root 폴더에서 앱을 실행하지만 프런트 엔드의 모든 코드는 "dist"하위 폴더에 있습니다. 또한 dist에서 루트로 index.html을 복사해야합니까?
Mark

1
그것은 --base-href /users/아닙니다 --base-href /users. (슬래시 누락)
bvdb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.