From 95b026d3bb0521486ea7c3318f531e966b0fcb61 Mon Sep 17 00:00:00 2001 From: zero <68810266+zllkjc@users.noreply.github.com> Date: Fri, 20 Dec 2024 17:27:57 +0800 Subject: [PATCH] fix: shoud not overrides cache when request has tail slash (#6649) --- .changeset/purple-parrots-admire.md | 6 ++++++ packages/server/core/src/plugins/render/ssrCache.ts | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 .changeset/purple-parrots-admire.md diff --git a/.changeset/purple-parrots-admire.md b/.changeset/purple-parrots-admire.md new file mode 100644 index 000000000000..35b373520e07 --- /dev/null +++ b/.changeset/purple-parrots-admire.md @@ -0,0 +1,6 @@ +--- +'@modern-js/server-core': patch +--- + +fix: cache should not be overrides when request has tail slash +fix: 当请求有尾斜杠时,缓存不应该被重写 diff --git a/packages/server/core/src/plugins/render/ssrCache.ts b/packages/server/core/src/plugins/render/ssrCache.ts index bb0732f79f82..a1d5e2fab033 100644 --- a/packages/server/core/src/plugins/render/ssrCache.ts +++ b/packages/server/core/src/plugins/render/ssrCache.ts @@ -6,6 +6,7 @@ import type { CacheOptionProvider, Container, } from '@modern-js/types'; +import { removeTailSlash } from '@modern-js/utils'; import { X_RENDER_CACHE } from '../../constants'; import type { RequestHandler, @@ -120,7 +121,7 @@ function computedKey(req: Request, cacheControl: CacheControl): string { // examples: // pathname1: '/api', pathname2: '/api/' // pathname1 as same as pathname2 - const defaultKey = pathname.replace(/.+\/+$/, ''); + const defaultKey = pathname === '/' ? pathname : removeTailSlash(pathname); if (customKey) { if (typeof customKey === 'string') {