Я настроил локальную среду с парой сервисов Spring Cloud (конфигурация, реестр сервисов и Zuul). Прокси правильно предоставляет сервисы, используя сопоставление по умолчанию:
2015-11-23 14:06:30.184 INFO 11532 --- [ main] o.s.c.n.zuul.web.ZuulHandlerMapping : Mapped URL path [/api-proxy/**] onto handler of type [class org.springframework.cloud.netflix.zuul.web.ZuulController]
2015-11-23 14:06:30.184 INFO 11532 --- [ main] o.s.c.n.zuul.web.ZuulHandlerMapping : Mapped URL path [/service-discovery/**] onto handler of type [class org.springframework.cloud.netflix.zuul.web.ZuulController]
2015-11-23 14:06:30.184 INFO 11532 --- [ main] o.s.c.n.zuul.web.ZuulHandlerMapping : Mapped URL path [/config-service/**] onto handler of type [class org.springframework.cloud.netflix.zuul.web.ZuulController]
2015-11-23 14:06:30.184 INFO 11532 --- [ main] o.s.c.n.zuul.web.ZuulHandlerMapping : Mapped URL path [/circuitbreaker-collector/**] onto handler of type [class org.springframework.cloud.netflix.zuul.web.ZuulController]
2015-11-23 14:06:30.184 INFO 11532 --- [ main] o.s.c.n.zuul.web.ZuulHandlerMapping : Mapped URL path [/circuitbreaker-dashboard/**] onto handler of type [class org.springframework.cloud.netflix.zuul.web.ZuulController]
Проблема, которую я вижу, заключается в том, что когда я перехожу к http://localhost/service-discovery/, я вижу Панель инструментов Eureka, но ни один из связанных статических ресурсов не загружается. Браузер показывает такие ошибки, как:
http://localhost/eureka/css/wro.css Failed to load resource: the server responded with a status of 404 (Not Found)
http://localhost/eureka/js/wro.js Failed to load resource: the server responded with a status of 404 (Not Found)
service-discovery:223 Uncaught ReferenceError: $ is not defined
http://localhost/eureka/css/wro.css Failed to load resource: the server responded with a status of 404 (Not Found)
Есть ли способ обойти эту проблему? Из того, что я могу сказать, панель инструментов Eureka не использует относительный путь при загрузке ресурсов и вместо этого предполагает, что приложение развернуто в контексте корневого сервлета.
ОБНОВЛЕНИЕ Я понял, что пропустил проблему. Я прокомментировал эту тему, но решил поднять ее в основной пост. Проблема в том, что Zuul делает внутренний запрос от имени клиента. Когда Zuul делает этот запрос, ответ HTML содержит URL-адреса, которые относятся к пути контекста, настроенному для Eureka. Обычно прокси-сервисы справляются с этим, переписывая любые URL-адреса, найденные в ответе, чтобы они имели правильный базовый контекст в отношении того, как прокси-сервер раскрывает его. Есть ли что-то подобное для Зуула?
Изменена тема для лучшего описания проблемы.