具有 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" />
现在一切正常。
我有三个 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" />
现在一切正常。