Solución:
Estoy enfrentando el mismo problema contigo. Mi proxy.config.json ha funcionado en mi entorno de desarrollo pero no funciona en el entorno PROD incluso si lo construí con build –prod
Después de encontrar una manera, encontré una solución para crear un servidor proxy con middleware en su lugar (usé Nginx en mi caso).
Si también usó Nginx, puede hacer un servidor proxy configurando esto en su configuración de nginx.
nginx.conf
location /api/ {
proxy_pass http://127.0.0.1:8087;
#all incoming http request with /api/ will be forwarded to http://127.0.0.1:8087/api/
}
El proxy funciona cuando el servidor de desarrollo está activo. ng build
no inicia el servidor de desarrollo, este comando solo construye el proyecto. Por lo tanto, no puede usar un proxy en un proyecto ensamblado. Puedes usar algo como ng serve --proxy-config proxy.config.json --prod
para probar en prod
entorno con proxy
Si necesita usar otra URL base en producción, puede usar HttpInterceptor
. Solo crea un servicio como este
@Injectable()
export class InterceptorsService implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
const proxyReq = req.clone({ url: `${ BASE_PATH }${ request.url }` });
return next.handle(proxyReq);
}
}
y agréguelo a los proveedores en su módulo
...
providers: [
{ provide: HTTP_INTERCEPTORS, useClass: InterceptorsService, multi: true }, ...
]
...