Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

357
Views
Cómo configurar APP_BASE_HREF DI Token en Angular cuando se cargan scripts/activos desde un CDN

Actualmente trato de configurar una aplicación Angular que está alojada en un dominio y obtiene sus scripts y activos de un CDN. La ruta a la aplicación es www.domain.de/subpath/ (obviamente cambiado por esta pregunta) y cuando construyo la aplicación en mi Pipeline de CI, estoy usando ng build--configuration=${ENV} --base-href=${CDN_URL} . Dado que solo con esta configuración, la aplicación intentaría hacer su enrutamiento en CDN_URL , estoy tratando de utilizar el APP_BASE_HREF DI como se describe en Angular Docs .

Sin embargo, no importa lo que configuro como DI Token, siempre obtengo un comportamiento no deseado:

 { provide: APP_BASE_HREF, useValue: `${environment.BASE_URL}/` } Result when navigating to www.domain.de/subpath/ -> www.domain.de/landing-page { provide: APP_BASE_HREF, useValue: `${environment.BASE_URL}/subpath` } Result when navigating to www.domain.de/subpath/ -> www.domain.de/subpath/subpath/landing-page DESIRED Result would be: www.domain.de/subpath/ -> www.domain.de/subpath/landing-page

Anteriormente tenía una configuración que usaba ng build --configuration=${ENV} --deploy-url=${CDN_URL} --base-href="/subpath/" pero deploy-url está en desuso y también solo carga scripts desde la CDN pero no los activos.

¿Hay algo que me falta o lo que quiero simplemente no se puede lograr con este enfoque simple?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Intenté durante bastante tiempo cargar activos desde una URL de CDN y enfrenté un problema similar. Esto es lo que terminé haciendo:

 declare let __webpack_require__: any; if (environment.production) { enableProdMode(); // eslint-disable-next-line @typescript-eslint/no-unused-vars // eslint-disable-next-line prefer-const const cdnPath = `${environment.BASE_URL}/<subpath>` __webpack_require__.p = cdnPath; }

Esto actualiza la webpack del paquete runtime.js desde la que se cargan los activos sobre la marcha. Es bastante hacky, pero funcionó para mí.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!