具有 UI 和 Spring 以及 Thymeleaf 的微服务

Microservice with own UI with Spring and Thymleaf

我有三个 Web 应用程序微服务和一个包含 UI 的网关。所以,我想做的是改变每个微服务都有自己的 UI 的应用程序,并且网关应该让服务器端包含。我使用 Thymeleaf 作为模板引擎并像这样执行包含:

<div th:replace="http://localhost:8080/#/organizations"></div>

我的问题是 CSS 和 JS 文件不是来自原始 localhost:8080 服务器,而是来自包含内容 localhost:9090.

的服务器

这就是我在 *:8080:

中包含 JS 和 CSS 文件的方式

<script th:src="@{webjars/jquery/$jquery.version$/jquery.min.js}"</script>

希望您理解我的问题,有人可以提供帮助...

我认为如果您使用本地主机的资源,您将无法实现预期的行为。您的测试页面可以访问上下文 9090 的本地资源,例如例如,当它试图请求时 <script th:src="@{webjars/angularjs/$angularjs.version$/angular.min.js}"></script> 从 9090 请求到 9090 但资源在 8080。 如果您将使用来自 CDN(来自互联网)的静态资源,它将起作用。

也许this article会对您有所帮助。

这个 ${#httpServletRequest.requestURL} 成功了...

<link th:href="@{__${#httpServletRequest.requestURL}__webjars/bootstrap/?{bootstrap.version}/css/bootstrap.min.css}" rel="stylesheet" />

现在一切正常。