Skip to content

Commit d6db51f

Browse files
mathisobadiafwang
andauthored
fix ISR when used in addition to middleware rewrite (#143)
* hash MessageDeduplicationId to avoid invalid values * Sync * added middleware rewrite with ISR * fix: make isr work with middleware rewrite * remove unecessary changes * add some usefull comments * Sync --------- Co-authored-by: Frank <[email protected]>
1 parent 22e8f70 commit d6db51f

File tree

8 files changed

+1986
-969
lines changed

8 files changed

+1986
-969
lines changed

.changeset/hip-drinks-explode.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"open-next": patch
3+
---
4+
5+
revalidation: fix ISR revalidation for rewritten URL

example/middleware.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ export async function middleware(request) {
66
url.searchParams.set("rewritten", "true")
77
return NextResponse.rewrite(url);
88
}
9+
if (request.nextUrl.pathname === "/middleware-rewrite-with-isr") {
10+
const { nextUrl: url } = request
11+
url.pathname = `/middleware-rewrite-with-isr-destination`
12+
return NextResponse.rewrite(url)
13+
}
914
if (request.nextUrl.pathname === "/middleware-redirect") {
1015
return NextResponse.redirect(new URL("/middleware-redirect-destination", request.url));
1116
}
@@ -49,6 +54,7 @@ export async function middleware(request) {
4954
export const config = {
5055
matcher: [
5156
"/middleware-rewrite",
57+
"/middleware-rewrite-with-isr",
5258
"/middleware-redirect",
5359
"/middleware-set-header",
5460
"/middleware-fetch",

example/package.json

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,24 @@
55
"scripts": {
66
"dev": "sst bind next dev",
77
"build": "next build",
8-
"start": "next start"
8+
"start": "next start",
9+
"deploy": "sst deploy"
910
},
1011
"dependencies": {
11-
"@next/font": "13.0.5",
12+
"@next/font": "13.4.7",
1213
"date-fns": "^2.23.0",
1314
"gray-matter": "^4.0.3",
14-
"next": "13.0.5",
15-
"next-auth": "^4.22.0",
15+
"next": "13.4.7",
16+
"next-auth": "^4.22.1",
1617
"react": "18.2.0",
1718
"react-dom": "18.2.0",
1819
"remark": "^13.0.0",
1920
"remark-html": "^13.0.2",
2021
"swr": "^1.0.1"
2122
},
2223
"devDependencies": {
23-
"aws-cdk-lib": "2.72.1",
24+
"aws-cdk-lib": "2.84.0",
2425
"constructs": "10.1.156",
25-
"sst": "^2.5.3"
26+
"sst": "2.16.3"
2627
}
2728
}

example/pages/middleware-redirect.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ export default function Page() {
99
</h1>
1010
<hr />
1111
<p>
12-
<b>Test 1:</b>
13-
If you see this page, Middleware with redirect is NOT working. You should be redirected to /middleware-redirect-destination.
12+
❌ If you see this page, Middleware with redirect is NOT working. You should be redirected to /middleware-redirect-destination.
1413
</p>
1514
</article>
1615
</Layout>
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import Layout from "../components/layout";
2+
3+
export async function getStaticProps() {
4+
return {
5+
props: {
6+
time: Date.now(),
7+
},
8+
revalidate: 10,
9+
};
10+
}
11+
12+
export default function Page({ time }) {
13+
return (
14+
<Layout>
15+
<article>
16+
<h1>
17+
Middleware — rewrite with Incremental Static Rendering (ISR)
18+
</h1>
19+
<hr />
20+
<p>
21+
<b>Test 1:</b>
22+
This timestamp 👉 {time} should change every 10 seconds when the page is repeatedly refreshed.
23+
</p>
24+
</article>
25+
</Layout>
26+
);
27+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import Layout from "../components/layout";
2+
3+
export default function Page() {
4+
return (
5+
<Layout>
6+
<article>
7+
<h1>
8+
Middleware — rewrite with Incremental Static Rendering (ISR)
9+
</h1>
10+
<hr />
11+
<p>
12+
❌ If you see this page, Middleware with rewrite is NOT working.
13+
</p>
14+
</article>
15+
</Layout>
16+
);
17+
}

0 commit comments

Comments
 (0)