Skip to content
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

konjacbot: sync docs@9ea20cb #292

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 10 additions & 8 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:

1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
Expand All @@ -24,15 +24,17 @@ A clear and concise description of what you expected to happen.
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]

**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]

**Additional context**
Add any other context about the problem here.
1 change: 0 additions & 1 deletion .github/ISSUE_TEMPLATE/issue_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ about: Standard issue template for Nextjs-docs-ja
title: ''
labels: ''
assignees: ''

---

#### Description
Expand Down

Large diffs are not rendered by default.

294 changes: 147 additions & 147 deletions docs/01-app/02-building-your-application/01-routing/07-redirecting.mdx

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

457 changes: 229 additions & 228 deletions docs/01-app/02-building-your-application/04-caching/index.mdx

Large diffs are not rendered by default.

201 changes: 98 additions & 103 deletions docs/01-app/02-building-your-application/06-optimizing/02-videos.mdx

Large diffs are not rendered by default.

242 changes: 130 additions & 112 deletions docs/01-app/02-building-your-application/07-configuring/05-mdx.mdx

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
---
title: 'カスタムサーバー'
description: 'カスタムサーバーを使用して、プログラムによってNext.jsアプリをスタートします。'
title: 'Custom Server'
description: 'カスタムサーバーを使用してプログラムでNext.jsアプリを開始する'
---

{/* このドキュメントの内容はapp routerとpages routerの間で共有されます。Pages Routerに特化したコンテンツを追加するには `<PagesOnly>Content</PagesOnly>` コンポーネントを使用できます。共有したコンテンツはコンポーネントでラップしないでください。 */}
{/* このドキュメントの内容はapp routerとpages routerの間で共有されています。pages routerに特化した内容を追加するには、`<PagesOnly>Content</PagesOnly>`コンポーネントを使用できます。共有されたコンテンツはコンポーネントでラップしないでください。 */}

Next.jsにはデフォルトで`next start`が付属しています。既存のバックエンドがある場合でも、Next.jsと一緒に使用できます(これはカスタムサーバーではありません)。カスタムNext.jsサーバーは、カスタムパターン用にプログラムでサーバーを開始することを可能にします。ほとんどの場合、このアプローチが必要になることはありません。ただし、必要に応じて使用可能です
Next.jsはデフォルトで`next start`を使用して独自のサーバーを含んでいます。既存のバックエンドがある場合でも、それをNext.jsと一緒に使用することができます(これはカスタムサーバーではありません)。カスタムNext.jsサーバーは、カスタムパターンのためにプログラムでサーバーを開始することを可能にします。大部分のケースでは、このアプローチは必要ありません。ただし、必要であれば使用可能です

> **Good to know**:
>
> - カスタムサーバーを使用することを決める前に、Next.jsの統合されたrouterがアプリの要件を満たせない場合にのみ使用されるべきであることを忘れないでください。カスタムサーバーは、**[Automatic Static Optimization](https://nextjs.org/docs/canary/pages/building-your-application/rendering/automatic-static-optimization)** のような重要なパフォーマンス最適化を削除します。
> - カスタムサーバーは、[Vercel](https://vercel.com/frameworks/nextjs) にデプロイすることが**できません**
> - スタンドアロンの出力モードを使用すると、カスタムサーバーファイルがトレースされません。このモードは、代わりに最小限の `server.js` ファイルを別々に出力します。これらは一緒に使用することができません
> - カスタムサーバーを使用する前に、Next.jsの統合されたルーターがアプリの要件を満たせない場合にのみ使用すべきであることを覚えておいてください。カスタムサーバーは、**[Automatic Static Optimization](https://nextjs.org/docs/canary/pages/building-your-application/rendering/automatic-static-optimization)**のような重要なパフォーマンス最適化を削除します。
> - カスタムサーバーは、[Vercel](https://vercel.com/frameworks/nextjs)にデプロイできません
> - スタンドアロンの出力モードを使用する場合、カスタムサーバーファイルをトレースしません。このモードは、代わりに別の最小限の`server.js`ファイルを出力します。これらは一緒に使用できません

カスタムサーバーの[以下の例](https://github.com/vercel/next.js/tree/canary/examples/custom-server)をご覧ください:

Expand All @@ -23,17 +23,26 @@ import { createServer } from 'http'
import { parse } from 'url'
import next from 'next'

// 環境変数からポートを取得、デフォルトは3000
const port = parseInt(process.env.PORT || '3000', 10)
// NODE_ENVがproductionでない場合は開発モード
const dev = process.env.NODE_ENV !== 'production'
// Next.jsアプリケーションを作成
const app = next({ dev })
// リクエストハンドラを取得
const handle = app.getRequestHandler()

// Next.jsが準備完了したらサーバーを開始
app.prepare().then(() => {
// サーバーを作成し、リクエストを処理する
createServer((req, res) => {
// URLを解析
const parsedUrl = parse(req.url!, true)
// リクエストをハンドラへ渡す
handle(req, res, parsedUrl)
}).listen(port)

// サーバーの待機状態をコンソールに出力
console.log(
`> Server listening at http://localhost:${port} as ${
dev ? 'development' : process.env.NODE_ENV
Expand All @@ -50,17 +59,26 @@ import { createServer } from 'http'
import { parse } from 'url'
import next from 'next'

// 環境変数からポートを取得、デフォルトは3000
const port = parseInt(process.env.PORT || '3000', 10)
// NODE_ENVがproductionでない場合は開発モード
const dev = process.env.NODE_ENV !== 'production'
// Next.jsアプリケーションを作成
const app = next({ dev })
// リクエストハンドラを取得
const handle = app.getRequestHandler()

// Next.jsが準備完了したらサーバーを開始
app.prepare().then(() => {
// サーバーを作成し、リクエストを処理する
createServer((req, res) => {
// URLを解析
const parsedUrl = parse(req.url, true)
// リクエストをハンドラへ渡す
handle(req, res, parsedUrl)
}).listen(port)

// サーバーの待機状態をコンソールに出力
console.log(
`> Server listening at http://localhost:${port} as ${
dev ? 'development' : process.env.NODE_ENV
Expand All @@ -72,7 +90,7 @@ app.prepare().then(() => {
</TabItem>
</Tabs>

> `server.js` はNext.jsのコンパイラやバンドルプロセスを通過しません。このファイルが必要とする構文とソースコードが、使用している現在のNode.jsバージョンと互換性があることを確認してください。[例を見る](https://github.com/vercel/next.js/tree/canary/examples/custom-server).
> `server.js`はNext.jsのコンパイラやバンドルプロセスを通過しません。このファイルに必要な構文とソースコードが、使用している現在のNode.jsのバージョンと互換性があることを確認してください。[例を参照](https://github.com/vercel/next.js/tree/canary/examples/custom-server)

カスタムサーバーを実行するには、`package.json`の`scripts`を次のように更新する必要があります:

Expand All @@ -86,46 +104,45 @@ app.prepare().then(() => {
}
```

または、`nodemon`をセットアップすることができます([例](https://github.com/vercel/next.js/tree/canary/examples/custom-server))。カスタムサーバーは、Next.jsアプリケーションとの接続に次のインポートを使用します
代替案として、`nodemon`をセットアップすることもできます([例](https://github.com/vercel/next.js/tree/canary/examples/custom-server))。カスタムサーバーは、次のインポートを使用してサーバーとNext.jsアプリケーションを接続します

```js
import next from 'next'

const app = next({})
```

上記の`next`インポートは、次のオプションを含むオブジェクトを受け取る関数です
上記の`next`インポートは、以下のオプションを持つオブジェクトを受け取る関数です

| Option | Type | Description |
| -------------- | ------------------ | --------------------------------------------------------------------------------------------- |
| `conf` | `Object` | `next.config.js`で使用するのと同じオブジェクト。デフォルトは`{}` |
| `customServer` | `Boolean` | (_オプション_)サーバーがNext.jsによって作成された場合にfalseに設定 |
| `dev` | `Boolean` | (_オプション_)Next.jsを開発モードで起動するかどうか。デフォルトは`false` |
| `dir` | `String` | (_オプション_)Next.jsのプロジェクトの場所。デフォルトは`'.'` |
| `quiet` | `Boolean` | (_オプション_)サーバー情報を含むエラーメッセージを非表示にするかどうか。デフォルトは`false` |
| `hostname` | `String` | (_オプション_)サーバーが稼働しているホスト名 |
| `port` | `Number` | (_オプション_)サーバーが稼働しているポート |
| `httpServer` | `node:http#Server` | (_オプション_)Next.jsが稼働しているHTTPサーバ |
| `turbo` | `Boolean` | (_オプション_)Turbopackを有効にする |
| Option | Type | Description |
| ------------ | ------------------ | ------------------------------------------------------------------------------------- |
| `conf` | `Object` | `next.config.js`で使用するのと同じオブジェクト。デフォルトは`{}` |
| `dev` | `Boolean` | (_オプション_)Next.jsを開発モードで起動するかどうか。デフォルトは`false` |
| `dir` | `String` | (_オプション_)Next.jsプロジェクトの場所。デフォルトは`.` |
| `quiet` | `Boolean` | (_オプション_)サーバー情報を含むエラーメッセージを隠すかどうか。デフォルトは`false` |
| `hostname` | `String` | (_オプション_)サーバーが動作しているホスト名 |
| `port` | `Number` | (_オプション_)サーバーが動作しているポート |
| `httpServer` | `node:http#Server` | (_オプション_)Next.jsが動作しているHTTPサーバー |
| `turbo` | `Boolean` | (_オプション_)Turbopackを有効にするスリー選択肢 |

返された`app`を使用して、Next.jsが必要に応じてリクエストを処理することができます
返される`app`を使用して、必要に応じてNext.jsにリクエストを処理させることができます

<PagesOnly>

## ファイルシステムルーティングを無効にする {#disabling-file-system-routing}

デフォルトでは、`Next`は各ファイルを`pages`フォルダ内のファイル名と一致するパス名の下で提供します。あなたのプロジェクトがカスタムサーバーを使用している場合、この動作は複数のパスから同じコンテンツが提供されることになり、SEOおよびUXの問題を引き起こす可能性があります
デフォルトでは、`Next``pages`フォルダ内の各ファイルを、そのファイル名に一致するパス名の下で提供します。プロジェクトがカスタムサーバーを使用している場合、この動作は同じコンテンツが複数のパスから提供されることを引き起こし、SEOやUXに問題を生じさせる可能性があります

この動作を無効にし、`pages`内のファイルに基づくルーティングを防止するには、`next.config.js`を開き、`useFileSystemPublicRoutes`設定を無効にします
この動作を無効にし、`pages`内のファイルに基づくルーティングを防ぐには、`next.config.js`を開いて`useFileSystemPublicRoutes`設定を無効にしてください

```js title="next.config.js"
module.exports = {
useFileSystemPublicRoutes: false,
}
```

> `useFileSystemPublicRoutes`はサーバサイドレンダリングからのファイル名ルートを無効にすることを注意してください。クライアントサイドルーティングはそれらのパスにまだアクセスできるかもしれません。このオプションを使用する場合、ネイティブなナビゲーションから意図したくないルートへとプログラム的にガードするべきです
> `useFileSystemPublicRoutes`はSSRからファイル名ルートを無効にしますが、クライアントサイドルーティングはこれらのパスにアクセスできるかもしれません。このオプションを使用する場合、プログラムで避けたいルートへのナビゲーションを防ぐ必要があります

> クライアントサイドルータを設定して、クライアントサイドでのファイル名ルートへのリダイレクトを禁止することも検討したいかもしれません。詳細は[`router.beforePopState`](https://nextjs.org/docs/canary/pages/api-reference/functions/use-router#routerbeforepopstate) を参照してください。
> また、クライアントサイドルーターを設定して、クライアントサイドのファイル名ルートへのリダイレクトを禁止することを検討するかもしれません。それについては[`router.beforePopState`](https://nextjs.org/docs/canary/pages/api-reference/functions/use-router#routerbeforepopstate)を参照してください。

</PagesOnly>
Loading