Skip to content

Commit 69aedbd

Browse files
authored
Fix typo (#34480)
1 parent f0f322c commit 69aedbd

File tree

9 files changed

+124
-19
lines changed

9 files changed

+124
-19
lines changed

docs/api-reference/data-fetching/get-static-paths.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ description: API reference for `getStaticPaths`. Learn how to fetch data and gen
77
<details>
88
<summary><b>Version History</b></summary>
99

10-
| Version | Changes |
11-
| -------- | --------------------------------------------------------------------------------------------------------------- |
10+
| Version | Changes |
11+
| ------- | ------- |
12+
13+
| `v12.1.0` | [On-demand Incremental Static Regeneration](/docs/basic-features/data-fetching/incremental-static-regeneration.md#on-demand-revalidation-beta) added (Beta). |
1214
| `v9.5.0` | Stable [Incremental Static Regeneration](/docs/basic-features/data-fetching/incremental-static-regeneration.md) |
13-
| `v9.3.0` | `getStaticPaths` introduced. |
15+
| `v9.3.0` | `getStaticPaths` introduced. |
1416

1517
</details>
1618

docs/api-reference/data-fetching/get-static-props.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@ description: API reference for `getStaticProps`. Learn how to use `getStaticProp
77
<details>
88
<summary><b>Version History</b></summary>
99

10-
| Version | Changes |
11-
| --------- | ----------------------------------------------------------------------------------------------------------------- |
12-
| `v10.0.0` | `locale`, `locales`, `defaultLocale`, and `notFound` options added. |
13-
| `v9.5.0` | Stable [Incremental Static Regeneration](https://nextjs.org/blog/next-9-5#stable-incremental-static-regeneration) |
14-
| `v9.3.0` | `getStaticProps` introduced. |
15-
| `v10.0.0` | `fallback: 'blocking'` return option added. |
10+
| Version | Changes |
11+
| ------- | ------- |
12+
13+
| `v12.1.0` | [On-demand Incremental Static Regeneration](/docs/basic-features/data-fetching/incremental-static-regeneration.md#on-demand-revalidation-beta) added (Beta). |
14+
| `v10.0.0` | `locale`, `locales`, `defaultLocale`, and `notFound` options added. |
15+
| `v10.0.0` | `fallback: 'blocking'` return option added. |
16+
| `v9.5.0` | Stable [Incremental Static Regeneration](/docs/basic-features/data-fetching/incremental-static-regeneration.md) |
17+
| `v9.3.0` | `getStaticProps` introduced. |
1618

1719
</details>
1820

docs/api-routes/response-helpers.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ The included helpers are:
1212
- `res.json(body)` - Sends a JSON response. `body` must be a [serializable object](https://developer.mozilla.org/en-US/docs/Glossary/Serialization)
1313
- `res.send(body)` - Sends the HTTP response. `body` can be a `string`, an `object` or a `Buffer`
1414
- `res.redirect([status,] path)` - Redirects to a specified path or URL. `status` must be a valid [HTTP status code](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes). If not specified, `status` defaults to "307" "Temporary redirect".
15+
- `res.unstable_revalidate(urlPath)` - [Revalidate a page on demand](/docs/basic-features/data-fetching/incremental-static-regeneration.md#on-demand-revalidation-beta) using `getStaticProps`. `urlPath` must be a `string`.
1516

1617
## Setting the status code of a response
1718

docs/basic-features/data-fetching/client-side.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,3 +68,14 @@ function Profile() {
6868
)
6969
}
7070
```
71+
72+
## Related
73+
74+
For more information on what to do next, we recommend the following sections:
75+
76+
<div class="card">
77+
<a href="/docs/routing/introduction.md">
78+
<b>Routing:</b>
79+
<small>Learn more about routing in Next.js.</small>
80+
</a>
81+
</div>

docs/basic-features/data-fetching/get-server-side-props.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,10 @@ export async function getServerSideProps() {
7474
export default Page
7575
```
7676

77+
## Related
78+
79+
For more information on what to do next, we recommend the following sections:
80+
7781
<div class="card">
7882
<a href="/docs/api-reference/data-fetching/get-server-side-props.md">
7983
<b>getServerSideProps API Reference</b>

docs/basic-features/data-fetching/get-static-paths.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export async function getStaticPaths() {
1919
}
2020
```
2121

22-
Note that`getStaticProps` **must** be used with `getStaticPaths`, and that you **cannot** use it with [`getServerSideProps`](/docs/basic-features/data-fetching/get-server-side-props.md).
22+
`getStaticPaths` **must** be used with `getStaticProps`. You **cannot** use it with [`getServerSideProps`](/docs/basic-features/data-fetching/get-server-side-props.md).
2323

2424
The [`getStaticPaths` API reference](/docs/api-reference/data-fetching/get-static-paths.md) covers all parameters and props that can be used with `getStaticPaths`.
2525

@@ -35,7 +35,11 @@ You should use `getStaticPaths` if you’re statically pre-rendering pages that
3535

3636
## When does getStaticPaths run
3737

38-
`getStaticPaths` only runs at build time on server-side. If you're using [Incremental Static Regeneration](/docs/basic-features/data-fetching/incremental-static-regeneration.md), `getStaticPaths` can also be run on-demand _in the background_, but still only on the server-side.
38+
`getStaticPaths` always runs on the server and never on the client. You can validate code written inside `getStaticPaths` is removed from the client-side bundle [with this tool](https://next-code-elimination.vercel.app/).
39+
40+
- `getStaticPaths` runs during `next build` for Pages included in `paths`
41+
- `getStaticPaths` runs on-demand in the background when using `fallback: true`
42+
- `getStaticPaths` runs on-demand blocking rendering when using `fallback: blocking`
3943

4044
## Where can I use getStaticPaths
4145

@@ -47,6 +51,10 @@ Note that you must use export `getStaticPaths` as a standalone function — it w
4751

4852
In development (`next dev`), `getStaticPaths` will be called on every request.
4953

54+
## Related
55+
56+
For more information on what to do next, we recommend the following sections:
57+
5058
<div class="card">
5159
<a href="/docs/api-reference/data-fetching/get-static-paths.md">
5260
<b>getStaticPaths API Reference</b>

docs/basic-features/data-fetching/get-static-props.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,17 @@ You should use `getStaticProps` if:
2323
- The data can be publicly cached (not user-specific)
2424
- The page must be pre-rendered (for SEO) and be very fast — `getStaticProps` generates `HTML` and `JSON` files, both of which can be cached by a CDN for performance
2525

26+
## When does getStaticProps run
27+
28+
`getStaticProps` always runs on the server and never on the client. You can validate code written inside `getStaticProps` is removed from the client-side bundle [with this tool](https://next-code-elimination.vercel.app/).
29+
30+
- `getStaticProps` always runs during `next build`
31+
- `getStaticProps` runs in the background when using `revalidate`
32+
- `getStaticProps` runs on-demand in the background when using [`unstable_revalidate`](/docs/basic-features/data-fetching/incremental-static-regeneration.md#on-demand-revalidation-beta)
33+
2634
When combined with [Incremental Static Regeneration](/docs/basic-features/data-fetching/incremental-static-regeneration.md), `getStaticProps` will run in the background while the stale page is being revalidated, and the fresh page served to the browser.
2735

28-
Because `getStaticProps` runs at build time, it does **not** have access to the incoming request (such as query parameters or `HTTP` headers) as it generates static `HTML`. If you need access to the request for your page, consider using [Middleware](/docs/middleware.md) in addition to `getStaticProps`.
36+
`getStaticProps` does not have access to the incoming request (such as query parameters or HTTP headers) as it generates static HTML. If you need access to the request for your page, consider using [Middleware](/docs/middleware.md) in addition to `getStaticProps`.
2937

3038
## Using getStaticProps to fetch data from a CMS
3139

@@ -128,9 +136,11 @@ In development (`next dev`), `getStaticProps` will be called on every request.
128136

129137
## Preview Mode
130138

131-
In some cases, you might want to temporarily bypass Static Generation and render the page at **request time** instead of build time. For example, you might be using a headless CMS and want to preview drafts before they're published.
139+
You can temporarily bypass static generation and render the page at **request time** instead of build time using [**Preview Mode**](/docs/advanced-features/preview-mode.md). For example, you might be using a headless CMS and want to preview drafts before they're published.
140+
141+
## Related
132142

133-
This use case is supported in Next.js by the [**Preview Mode**](/docs/advanced-features/preview-mode.md) feature.
143+
For more information on what to do next, we recommend the following sections:
134144

135145
<div class="card">
136146
<a href="/docs/api-reference/data-fetching/get-static-props.md">

docs/basic-features/data-fetching/incremental-static-regeneration.md

Lines changed: 71 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@ description: 'Learn how to create or update static pages at runtime with Increme
1616
<details>
1717
<summary><b>Version History</b></summary>
1818

19-
| Version | Changes |
20-
| -------- | ---------------- |
21-
| `v9.5.0` | Base Path added. |
19+
| Version | Changes |
20+
| --------- | --------------------------------------------------------------------------------------- |
21+
| `v12.1.0` | On-demand ISR added (Beta). |
22+
| `v12.0.0` | [Bot-aware ISR fallback](https://nextjs.org/blog/next-12#bot-aware-isr-fallback) added. |
23+
| `v9.5.0` | Base Path added. |
2224

2325
</details>
2426

@@ -85,7 +87,61 @@ When a request is made to a page that was pre-rendered at build time, it will in
8587

8688
When a request is made to a path that hasn’t been generated, Next.js will server-render the page on the first request. Future requests will serve the static file from the cache. ISR on Vercel [persists the cache globally and handles rollbacks](https://vercel.com/docs/concepts/next.js/incremental-static-regeneration).
8789

88-
## Error Handling and Revalidation
90+
## On-demand Revalidation (Beta)
91+
92+
If you set a `revalidate` time of `60`, all visitors will see the same generated version of your site for one minute. The only way to invalidate the cache is from someone visiting that page after the minute has passed.
93+
94+
Starting with `v12.1.0`, Next.js supports on-demand Incremental Static Regeneration to manually purge the Next.js cache for a specific page. This makes it easier to update your site when:
95+
96+
- Content from your headless CMS is created or updated
97+
- Ecommerce metadata changes (price, description, category, reviews, etc.)
98+
99+
Inside `getStaticProps`, you do not need to specify `revalidate` to use on-demand revalidation. If `revalidate` is omitted, Next.js will use the default value of `false` (no revalidation) and only revalidate the page on-demand when `unstable_revalidate` is called.
100+
101+
### Using On-Demand Revalidation
102+
103+
First, create a secret token only known by your Next.js app. This secret will be used to prevent unauthorized access to the revalidation API Route. You can access the route (either manually or with a webhook) with the following URL structure:
104+
105+
```bash
106+
https://<your-site.com>/api/revalidate?secret=<token>
107+
```
108+
109+
Next, add the secret as an [Environment Variable](/docs/basic-features/environment-variables.md) to your application. Finally, create the revalidation API Route:
110+
111+
```jsx
112+
// pages/api/revalidate.js
113+
114+
export default async function handler(req, res) {
115+
// Check for secret to confirm this is a valid request
116+
if (req.query.secret !== process.env.MY_SECRET_TOKEN) {
117+
return res.status(401).json({ message: 'Invalid token' })
118+
}
119+
120+
try {
121+
await res.unstable_revalidate('/path-to-revalidate')
122+
return res.json({ revalidated: true })
123+
} catch (err) {
124+
// If there was an error, Next.js will continue
125+
// to show the last successfully generated page
126+
return res.status(500).send('Error revalidating')
127+
}
128+
}
129+
```
130+
131+
[View our demo](https://on-demand-isr.vercel.app) to see on-demand revalidation in action and provide feedback.
132+
133+
### Testing on-demand ISR during development
134+
135+
When running locally with `next dev`, `getStaticProps` is invoked on every request. To verify your on-demand ISR configuration is correct, you will need to create a [production build](/docs/api-reference/cli.md#build) and start the [production server](/docs/api-reference/cli.md#production):
136+
137+
```bash
138+
$ next build
139+
$ next start
140+
```
141+
142+
Then, you are able to validate static pages are successfully revalidated.
143+
144+
## Error handling and revalidation
89145

90146
If there is an error inside `getStaticProps` when handling background regeneration, or you manually throw an error, the last successfully generated page will continue to show. On the next subsequent request, Next.js will retry calling `getStaticProps`.
91147

@@ -114,3 +170,14 @@ export async function getStaticProps() {
114170
}
115171
}
116172
```
173+
174+
## Related
175+
176+
For more information on what to do next, we recommend the following sections:
177+
178+
<div class="card">
179+
<a href="/docs/basic-features/data-fetching/get-static-paths.md">
180+
<b>Dynamic routing</b>
181+
<small>Learn more about dynamic routing in Next.js with getStaticPaths.</small>
182+
</a>
183+
</div>

docs/middleware.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ description: Learn how to use Middleware in Next.js to run code before a request
1010
| Version | Changes |
1111
| --------- | ------------------------------------------------------------------------------------------ |
1212
| `v12.0.9` | Enforce absolute URLs in Edge Runtime ([PR](https://github.com/vercel/next.js/pull/33410)) |
13-
| `v12.0.0` | Middleware (beta) added. |
13+
| `v12.0.0` | Middleware (Beta) added. |
1414

1515
</details>
1616

0 commit comments

Comments
 (0)