fix(portal): 错误页返回首页链接改 th:href=@{/portal/} 感知 context-path(R-04)

This commit is contained in:
chenxing
2026-09-19 17:18:10 +08:00
parent 8839ef8a5f
commit c44c35bf2a
5 changed files with 12 additions and 8 deletions
+2 -2
View File
@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="zh-CN">
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
@@ -20,7 +20,7 @@
<div class="code">400</div>
<h1>请求参数有误</h1>
<p>页面地址中的参数不正确(如页码格式错误)。<br>请修正后重试,或返回门户首页继续浏览。</p>
<a href="/cms/portal/">返回门户首页</a>
<a th:href="@{/portal/}" href="/portal/">返回门户首页</a>
</div>
</body>
</html>
+2 -2
View File
@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="zh-CN">
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
@@ -20,7 +20,7 @@
<div class="code">404</div>
<h1>页面不存在或已下线</h1>
<p>您访问的页面可能已被删除、更改地址或暂时不可用。<br>请检查网址是否正确,或返回门户首页继续浏览。</p>
<a href="/cms/portal/">返回门户首页</a>
<a th:href="@{/portal/}" href="/portal/">返回门户首页</a>
</div>
</body>
</html>
+2 -2
View File
@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="zh-CN">
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
@@ -20,7 +20,7 @@
<div class="code">500</div>
<h1>服务暂时不可用</h1>
<p>系统开小差了,工程师正在抢修。<br>请稍后刷新重试,或返回门户首页继续浏览。</p>
<a href="/cms/portal/">返回门户首页</a>
<a th:href="@{/portal/}" href="/portal/">返回门户首页</a>
</div>
</body>
</html>
@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="zh-CN">
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
@@ -20,7 +20,7 @@
<div class="code">:(</div>
<h1>出错了</h1>
<p>请求处理出现异常,请稍后重试。<br>如持续出现,请联系管理员。</p>
<a href="/cms/portal/">返回门户首页</a>
<a th:href="@{/portal/}" href="/portal/">返回门户首页</a>
</div>
</body>
</html>
@@ -60,6 +60,10 @@ class PortalErrorPageIT extends CmsIntegrationTestBase {
assertThat(resp.getStatusCode()).isEqualTo(HttpStatus.NOT_FOUND);
assertThat(resp.getBody()).contains("页面不存在");
assertThat(resp.getBody()).doesNotContain("\"status\":404");
// R-04:返回首页链接必须上下文感知(th:href="@{/portal/}"),不得硬编码 /cms 前缀
// (本测试无 context-path → 渲染为 /portal/;部署在 /cms 下则自动带 /cms)
assertThat(resp.getBody()).contains("href=\"/portal/\"");
assertThat(resp.getBody()).doesNotContain("/cms/portal/");
assertThat(MediaType.parseMediaType(resp.getHeaders().getContentType().toString())
.includes(MediaType.TEXT_HTML)).isTrue();
}