当Zuul将请求路由到登录页面时,无法正确定位静态资源(css,js等)。将返回404 Not Found
错误。
我首先进行以下路由设置:
ui:
path: /ui/**
url: http://serviceHost:8082/ui/
它运作良好。因此,当我访问http://zuulHost/ui/login/
时,我将获得index.jsp
,然后浏览器将请求静态资源,其路径如下:
/ui/ext/ext-dev.js
浏览器将使用http://zuulHost/ui/ext/ext-dev.js
,例如,用于该资源。 Zuul会根据其设置将其路由到http://serviceHost:8082/ui/ext/ext-dev.js
。
但是我希望将请求转发到登录页面的根/
路径,然后我添加了:
root:
path: /
url: http://serviceHost:8082/ui/login/
这次,在浏览器获取index.jsp
文件后,它将使用:
http://zuulHost/ext/ext-dev.js
所以在这种情况下,上下文/ui
会丢失,因为浏览器不知道它,因为我在内部转发请求。浏览器中的网址仍为http://zuulHost
。并且zuul不知道在哪里路由http://zuulHost/ext/ext-dev.js
,因为路由表中没有匹配。
我想知道是否有解决方案。我认为在代理服务器中进行转发时这是一个非常常见的问题。感谢。