Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit e77b98a

Browse filesBrowse files
authored
feat: add logging to understand impact of trailing slash 308s (#2743)
1 parent aab8803 commit e77b98a
Copy full SHA for e77b98a

File tree

Expand file treeCollapse file tree

2 files changed

+10
-2
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+10
-2
lines changed

‎src/run/handlers/server.ts

Copy file name to clipboardExpand all lines: src/run/handlers/server.ts
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ export default async (request: Request) => {
108108

109109
await adjustDateHeader({ headers: response.headers, request, span, tracer, requestContext })
110110

111-
setCacheControlHeaders(response, request, requestContext)
111+
setCacheControlHeaders(response, request, requestContext, nextConfig)
112112
setCacheTagsHeaders(response.headers, requestContext)
113113
setVaryHeaders(response.headers, request, nextConfig)
114114
setCacheStatusHeader(response.headers)

‎src/run/headers.ts

Copy file name to clipboardExpand all lines: src/run/headers.ts
+9-1Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import type { NextConfigComplete } from 'next/dist/server/config-shared.js'
33

44
import { encodeBlobKey } from '../shared/blobkey.js'
55

6-
import type { RequestContext } from './handlers/request-context.cjs'
6+
import { getLogger, RequestContext } from './handlers/request-context.cjs'
77
import type { RuntimeTracer } from './handlers/tracer.cjs'
88
import { getRegionalBlobStore } from './regional-blob-store.cjs'
99

@@ -216,6 +216,7 @@ export const setCacheControlHeaders = (
216216
{ headers, status }: Response,
217217
request: Request,
218218
requestContext: RequestContext,
219+
nextConfig: NextConfigComplete,
219220
) => {
220221
if (
221222
typeof requestContext.routeHandlerRevalidate !== 'undefined' &&
@@ -234,6 +235,13 @@ export const setCacheControlHeaders = (
234235
return
235236
}
236237

238+
// temporary diagnostic to evaluate number of trailing slash redirects
239+
if (status === 308 && request.url.endsWith('/') !== nextConfig.trailingSlash) {
240+
getLogger()
241+
.withFields({ trailingSlash: nextConfig.trailingSlash })
242+
.log('NetlifyHeadersHandler.trailingSlashRedirect')
243+
}
244+
237245
if (status === 404 && request.url.endsWith('.php')) {
238246
// temporary CDN Cache Control handling for bot probes on PHP files
239247
// https://linear.app/netlify/issue/FRB-1344/prevent-excessive-ssr-invocations-due-to-404-routes

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.