(WAR)Spring 未找到引导管理自定义视图

(WAR) Spring Boot Admin custom view not found

作为 WAR 部署到 Tomcat 后,我的自定义 SBA 仪表板无法显示自定义视图,该视图最初在 JAR 中表现良好(但现在也失败了,顺便说一句)

这是 WAR 中扩展目录所在的位置: /WEB-INF/classes/META-INF/spring-boot-admin-server-ui/extensions/自定义/...

REM:我还自定义了登录页面,我的图片位于 /WEB-INF/classes/META-INF/spring-boot-admin-server-ui/assets/img/ 所以我想类路径不是问题。

不过,我在 Web 浏览器的控制台中遇到了一个错误: GET http://xx.xx.xx.xx:8080/extensions/customz/css/custom.fb3a4f29.css net::ERR_ABORTED 404

REM: 根据我的上下文路径,正确的路径应该是: http://xx.xx.xx.xx:8080/myapp/dashboard/extensions/customz/css/custom.fb3a4f29.css

server.servlet.context-path=/myapp
spring.boot.admin.context-path=/dashboard

...

<packaging>war</packaging>
<build>
<finalName>myapp</finalName>
...
</build>

但在这种情况下,我不知道如何更改我的视图的基本路径。我应该只需要以某种方式在系统前加上我的 "customz/dashboard" 上下文路径 (?)

请问有人知道如何摆脱这个陷阱吗?

注意:Spring Boot 2.2.8,Spring Cloud Hoxton.SR5,SBA 2.2.3,Tomcat 9.0.36

AdminServerUiAutoConfiguration 声明扩展的资源处理程序(将 context-path/extensions/** 映射到上面的类路径,正如我之前尝试可视化自定义 JS 和 CSS 时所发现的。 请记住 spring.boot.admin.ui.extension-resource-locations 默认是 classpath:/META-INF/spring-boot-admin-server-ui/extensions/ 这在我的例子中似乎很好。这确认自定义视图已正确公开。

因此,这将我们引向 spring-boot-admin-server-ui/src/main/frontend/index.html,其中所有路径似乎都是……绝对的!

<th:block th:each="cssExtension : ${cssExtensions}">
    <link rel="preload" th:href="'/extensions/' + ${cssExtension.resourcePath}" as="style">
</th:block>
<th:block th:each="jsExtension : ${jsExtensions}">
    <link rel="preload" th:href="'/extensions/' + ${jsExtension.resourcePath}" as="script">
</th:block>
<th:block th:each="cssExtension : ${cssExtensions}">
    <link th:href="'/extensions/' + ${cssExtension.resourcePath}" rel="stylesheet">
</th:block>
<link rel="shortcut icon" th:href="${uiSettings.favicon}" type="image/png">
<title th:text="${uiSettings.title}">Spring Boot Admin</title>
...
<script lang="javascript" src="sba-settings.js"></script>
<th:block th:each="jsExtension : ${jsExtensions}">
<script lang="javascript" th:src="'/extensions/' + ${jsExtension.resourcePath}"></script>
</th:block>

我想这两点是应该添加 servlet 和 admin ui 上下文路径以便保留扩展。可能是 tehe quickest 方法是相对于 index.html

中的 URls

所以我就是这么做的...git 在标签 2.2.3 上克隆 SBA,进行更改并安装 Maven,将服务器的父级更改为 SNAPSHOT,然后重新 uilding WAR 变成 Tomcat。 Et voilà.