-
Notifications
You must be signed in to change notification settings - Fork 26.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add docs for static 404 and pages/404 #10811
Conversation
Stats from current PRDefault Server ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Legacy Client Bundles (polyfills)
Client Pages
Client Pages Modern
Client Build Manifests
Rendered Page Sizes
Serverless Mode (Increase detected
|
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
buildDuration | 10.3s | 10.2s | -108ms |
nodeModulesSize | 56.3 MB | 56.3 MB | ✓ |
Client Bundles (main, webpack, commons)
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
main-HASH.js gzip | 5.76 kB | 5.76 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..67cb.js gzip | 9.69 kB | 9.69 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 55.3 kB | 55.3 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
main-HASH.module.js gzip | 4.79 kB | 4.79 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.64 kB | 6.64 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 51.3 kB | 51.3 kB | ✓ |
Legacy Client Bundles (polyfills)
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 18.9 kB | 18.9 kB | ✓ |
Overall change | 18.9 kB | 18.9 kB | ✓ |
Client Pages
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
_app.js gzip | 1.07 kB | 1.07 kB | ✓ |
_error.js gzip | 2.98 kB | 2.98 kB | ✓ |
hooks.js gzip | 664 B | 664 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js gzip | 1.89 kB | 1.89 kB | ✓ |
routerDirect.js gzip | 279 B | 279 B | ✓ |
withRouter.js gzip | 278 B | 278 B | ✓ |
Overall change | 7.38 kB | 7.38 kB | ✓ |
Client Pages Modern
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
_app.module.js gzip | 589 B | 589 B | ✓ |
_error.module.js gzip | 2.08 kB | 2.08 kB | ✓ |
hooks.module.js gzip | 370 B | 370 B | ✓ |
index.module.js gzip | 212 B | 212 B | ✓ |
link.module.js gzip | 1.48 kB | 1.48 kB | ✓ |
routerDirect..dule.js gzip | 271 B | 271 B | ✓ |
withRouter.m..dule.js gzip | 270 B | 270 B | ✓ |
Overall change | 5.27 kB | 5.27 kB | ✓ |
Client Build Manifests
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 122 B | 122 B | ✓ |
Serverless bundles Overall increase ⚠️
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
_error.js gzip | 292 kB | 292 kB | -775 B |
404.html gzip | 1.34 kB | 1.34 kB | ✓ |
hooks.html gzip | 975 B | 975 B | ✓ |
index.js gzip | 292 kB | 292 kB | |
link.js gzip | 300 kB | 299 kB | -816 B |
routerDirect.js gzip | 298 kB | 299 kB | |
withRouter.js gzip | 298 kB | 298 kB | |
Overall change | 1.48 MB | 1.48 MB |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left a few comments! I feel like we can restructure this page so it looks like this:
- 404 pages
- How to use the default
- How to make a custom, static 404 page
- 500 pages
- How to use the default
- How to make a custom 500 page
I think it'd be simpler to understand. What do you think?
|
||
## Static `pages/404` | ||
|
||
For the cases where you do want a custom `_error` page but still want the benefits of a static 404 page we have added a convention of a `pages/404` file that takes priority over `_error` for 404s specifically. This 404 page is specifically meant for creating a static 404 page and strictly does not allow `getInitialProps` or `getServerSideProps` to be used. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Maybe add
.js
(even though it could be TS, I think people will understand):pages/404.js
- Earlier it said "
pages/_error.js
is only used in production for non-404 errors" but this paragraph says "takes priority over_error
for 404s" - so 404 may be rendered by_error
? In that case, the earlier sentence was incorrect? specifically
is used twice, I think the second one can be removed.- How about
getStaticProps
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point, I reworked it using the above mentioned structure. Let me know if this seems better
Co-Authored-By: Shu Uesugi <[email protected]>
Stats from current PRDefault Server ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Legacy Client Bundles (polyfills)
Client Pages
Client Pages Modern
Client Build Manifests
Rendered Page Sizes
Serverless Mode (Increase detected
|
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
buildDuration | 11.1s | 11.6s | |
nodeModulesSize | 56.3 MB | 56.3 MB | ✓ |
Client Bundles (main, webpack, commons)
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
main-HASH.js gzip | 5.76 kB | 5.76 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..67cb.js gzip | 9.69 kB | 9.69 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 55.3 kB | 55.3 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
main-HASH.module.js gzip | 4.79 kB | 4.79 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.64 kB | 6.64 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 51.3 kB | 51.3 kB | ✓ |
Legacy Client Bundles (polyfills)
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 18.9 kB | 18.9 kB | ✓ |
Overall change | 18.9 kB | 18.9 kB | ✓ |
Client Pages
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
_app.js gzip | 1.07 kB | 1.07 kB | ✓ |
_error.js gzip | 2.98 kB | 2.98 kB | ✓ |
hooks.js gzip | 664 B | 664 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js gzip | 1.89 kB | 1.89 kB | ✓ |
routerDirect.js gzip | 279 B | 279 B | ✓ |
withRouter.js gzip | 278 B | 278 B | ✓ |
Overall change | 7.38 kB | 7.38 kB | ✓ |
Client Pages Modern
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
_app.module.js gzip | 589 B | 589 B | ✓ |
_error.module.js gzip | 2.08 kB | 2.08 kB | ✓ |
hooks.module.js gzip | 370 B | 370 B | ✓ |
index.module.js gzip | 212 B | 212 B | ✓ |
link.module.js gzip | 1.48 kB | 1.48 kB | ✓ |
routerDirect..dule.js gzip | 271 B | 271 B | ✓ |
withRouter.m..dule.js gzip | 270 B | 270 B | ✓ |
Overall change | 5.27 kB | 5.27 kB | ✓ |
Client Build Manifests
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 122 B | 122 B | ✓ |
Serverless bundles Overall increase ⚠️
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
_error.js gzip | 292 kB | 292 kB | |
404.html gzip | 1.34 kB | 1.34 kB | ✓ |
hooks.html gzip | 975 B | 975 B | ✓ |
index.js gzip | 292 kB | 292 kB | -429 B |
link.js gzip | 300 kB | 299 kB | -764 B |
routerDirect.js gzip | 298 kB | 298 kB | |
withRouter.js gzip | 298 kB | 299 kB | |
Overall change | 1.48 MB | 1.48 MB |
Stats from current PRDefault Server ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Legacy Client Bundles (polyfills)
Client Pages
Client Pages Modern
Client Build Manifests
Rendered Page Sizes
Serverless Mode (Increase detected
|
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
buildDuration | 9.8s | 9.5s | -260ms |
nodeModulesSize | 56.3 MB | 56.3 MB | ✓ |
Client Bundles (main, webpack, commons)
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
main-HASH.js gzip | 5.76 kB | 5.76 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..67cb.js gzip | 9.69 kB | 9.69 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 55.3 kB | 55.3 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
main-HASH.module.js gzip | 4.79 kB | 4.79 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.64 kB | 6.64 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 51.3 kB | 51.3 kB | ✓ |
Legacy Client Bundles (polyfills)
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 18.9 kB | 18.9 kB | ✓ |
Overall change | 18.9 kB | 18.9 kB | ✓ |
Client Pages
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
_app.js gzip | 1.07 kB | 1.07 kB | ✓ |
_error.js gzip | 2.98 kB | 2.98 kB | ✓ |
hooks.js gzip | 664 B | 664 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js gzip | 1.89 kB | 1.89 kB | ✓ |
routerDirect.js gzip | 279 B | 279 B | ✓ |
withRouter.js gzip | 278 B | 278 B | ✓ |
Overall change | 7.38 kB | 7.38 kB | ✓ |
Client Pages Modern
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
_app.module.js gzip | 589 B | 589 B | ✓ |
_error.module.js gzip | 2.08 kB | 2.08 kB | ✓ |
hooks.module.js gzip | 370 B | 370 B | ✓ |
index.module.js gzip | 212 B | 212 B | ✓ |
link.module.js gzip | 1.48 kB | 1.48 kB | ✓ |
routerDirect..dule.js gzip | 271 B | 271 B | ✓ |
withRouter.m..dule.js gzip | 270 B | 270 B | ✓ |
Overall change | 5.27 kB | 5.27 kB | ✓ |
Client Build Manifests
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 122 B | 122 B | ✓ |
Serverless bundles Overall increase ⚠️
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
_error.js gzip | 293 kB | 292 kB | -248 B |
404.html gzip | 1.34 kB | 1.34 kB | ✓ |
hooks.html gzip | 975 B | 975 B | ✓ |
index.js gzip | 292 kB | 292 kB | |
link.js gzip | 299 kB | 299 kB | -226 B |
routerDirect.js gzip | 298 kB | 299 kB | |
withRouter.js gzip | 298 kB | 299 kB | |
Overall change | 1.48 MB | 1.48 MB |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's much better! Just added a few comments.
@ijjk @chibicode now that we shipped the multi-version docs we can merge these documentation changes without worrying about accidentally showing them on nextjs.org/docs. |
Co-Authored-By: Shu Uesugi <[email protected]>
Stats from current PRDefault Server ModeGeneral
Client Bundles (main, webpack, commons)
Client Bundles (main, webpack, commons) Modern
Legacy Client Bundles (polyfills)
Client Pages
Client Pages Modern
Client Build Manifests
Rendered Page Sizes
Serverless Mode (Increase detected
|
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
buildDuration | 10.9s | 10.9s | -7ms |
nodeModulesSize | 56.3 MB | 56.3 MB | ✓ |
Client Bundles (main, webpack, commons)
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
main-HASH.js gzip | 5.76 kB | 5.76 kB | ✓ |
webpack-HASH.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..b869.js gzip | 9.71 kB | 9.71 kB | ✓ |
framework.HASH.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 55.4 kB | 55.4 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
main-HASH.module.js gzip | 4.79 kB | 4.79 kB | ✓ |
webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
de003c3a9d30..dule.js gzip | 6.66 kB | 6.66 kB | ✓ |
framework.HA..dule.js gzip | 39.1 kB | 39.1 kB | ✓ |
Overall change | 51.3 kB | 51.3 kB | ✓ |
Legacy Client Bundles (polyfills)
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 18.9 kB | 18.9 kB | ✓ |
Overall change | 18.9 kB | 18.9 kB | ✓ |
Client Pages
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
_app.js gzip | 1.07 kB | 1.07 kB | ✓ |
_error.js gzip | 2.98 kB | 2.98 kB | ✓ |
hooks.js gzip | 664 B | 664 B | ✓ |
index.js gzip | 222 B | 222 B | ✓ |
link.js gzip | 1.89 kB | 1.89 kB | ✓ |
routerDirect.js gzip | 279 B | 279 B | ✓ |
withRouter.js gzip | 278 B | 278 B | ✓ |
Overall change | 7.38 kB | 7.38 kB | ✓ |
Client Pages Modern
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
_app.module.js gzip | 589 B | 589 B | ✓ |
_error.module.js gzip | 2.08 kB | 2.08 kB | ✓ |
hooks.module.js gzip | 370 B | 370 B | ✓ |
index.module.js gzip | 212 B | 212 B | ✓ |
link.module.js gzip | 1.48 kB | 1.48 kB | ✓ |
routerDirect..dule.js gzip | 271 B | 271 B | ✓ |
withRouter.m..dule.js gzip | 270 B | 270 B | ✓ |
Overall change | 5.27 kB | 5.27 kB | ✓ |
Client Build Manifests
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
_buildManifest.js gzip | 61 B | 61 B | ✓ |
_buildManife..dule.js gzip | 61 B | 61 B | ✓ |
Overall change | 122 B | 122 B | ✓ |
Serverless bundles Overall increase ⚠️
zeit/next.js canary | ijjk/next.js docs/static-404 | Change | |
---|---|---|---|
_error.js gzip | 292 kB | 292 kB | |
404.html gzip | 1.34 kB | 1.34 kB | ✓ |
hooks.html gzip | 974 B | 974 B | ✓ |
index.js gzip | 292 kB | 292 kB | -281 B |
link.js gzip | 300 kB | 300 kB | |
routerDirect.js gzip | 298 kB | 298 kB | -216 B |
withRouter.js gzip | 298 kB | 299 kB | |
Overall change | 1.48 MB | 1.48 MB |
This adds initial docs for the default static 404 and
pages/404
behavior that has been added. These docs are on hold until we are ready to ship this to stable