Skip to content
Merged
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 20 additions & 0 deletions .github/workflows/update-docs-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Update Docs CI

on:
push:
branches:
- docs/update-translations

jobs:
translate:
runs-on: ubuntu-latest
steps:
# Checkout the repository first to access local actions
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Setup Tools
# After pnpm install, apps/docs will execute postinstall: fumadocs-mdx
# Which will generated MDX types (check if the docs frontmatter is correct)
uses: ./.github/actions/setup
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
source-updated-at: 2025-05-16T04:52:11.000Z
translation-updated-at: 2025-05-20T22:59:36.628Z
source-updated-at: 2025-05-21T18:33:43.000Z
translation-updated-at: 2025-05-21T21:08:11.137Z
title: assetPrefix
description: 了解如何使用 assetPrefix 配置选项来配置您的 CDN。
---
Expand All @@ -21,14 +21,15 @@ description: 了解如何使用 assetPrefix 配置选项来配置您的 CDN。

</PagesOnly>

> **须知**:Next.js 9.5+ 增加了对可自定义 [基础路径 (Base Path)](/docs/app/api-reference/config/next-config-js/basePath) 的支持,该功能更适合将应用程序托管在子路径(如 `/docs`)下。
> 我们不建议您为此用例使用自定义资源前缀 (Asset Prefix)。
> **须知**:Next.js 9.5+ 添加了对可自定义 [基础路径 (Base Path)](/docs/app/api-reference/config/next-config-js/basePath) 的支持,该功能更适合
> 将应用程序托管在子路径(如 `/docs`)下。
> 对于此用例,我们不建议使用自定义资源前缀 (Asset Prefix)。

## 设置 CDN

要设置 [CDN](https://en.wikipedia.org/wiki/Content_delivery_network),您可以配置资源前缀 (assetPrefix) 并将 CDN 的源站解析到托管 Next.js 的域名。
要设置 [CDN](https://en.wikipedia.org/wiki/Content_delivery_network),您可以配置资源前缀并将 CDN 的源站解析到托管 Next.js 的域名。

打开 `next.config.mjs` 并根据 [阶段 (phase)](/docs/app/api-reference/config/next-config-js#async-configuration) 添加 `assetPrefix` 配置:
打开 `next.config.mjs` 并根据 [阶段](/docs/app/api-reference/config/next-config-js#async-configuration) 添加 `assetPrefix` 配置:

```js filename="next.config.mjs"
// @ts-check
Expand All @@ -46,7 +47,7 @@ export default (phase) => {
}
```

Next.js 会自动将您配置的资源前缀用于从 `/_next/` 路径(`.next/static/` 文件夹)加载的 JavaScript 和 CSS 文件。例如,使用上述配置后,以下对 JS 分块的请求
Next.js 会自动对从 `/_next/` 路径(`.next/static/` 文件夹)加载的 JavaScript 和 CSS 文件使用您配置的资源前缀。例如,使用上述配置后,原本的 JS 块请求

```
/_next/static/chunks/4b9b41aaa062cbbfeff4add70f256968c51ece5d.4d708494b3aed70c04f0.js
Expand All @@ -58,7 +59,7 @@ Next.js 会自动将您配置的资源前缀用于从 `/_next/` 路径(`.next/
https://cdn.mydomain.com/_next/static/chunks/4b9b41aaa062cbbfeff4add70f256968c51ece5d.4d708494b3aed70c04f0.js
```

将文件上传到指定 CDN 的具体配置取决于您选择的 CDN。您只需要在 CDN 上托管 `.next/static/` 文件夹的内容,这些内容应按照上述 URL 请求所示上传为 `_next/static/`。**不要上传 `.next/` 文件夹的其他部分**,因为您不应将服务器代码和其他配置暴露给公众
将文件上传到指定 CDN 的具体配置取决于您选择的 CDN 服务。您只需要在 CDN 上托管 `.next/static/` 目录的内容,并按照上述 URL 请求所示将其上传为 `_next/static/`。**请勿上传 `.next/` 文件夹的其他部分**,因为您不应将服务器代码和其他配置公开给公众

虽然 `assetPrefix` 会覆盖对 `_next/static` 的请求,但它不会影响以下路径:

Expand All @@ -72,6 +73,6 @@ https://cdn.mydomain.com/_next/static/chunks/4b9b41aaa062cbbfeff4add70f256968c51

- [public](/docs/pages/api-reference/file-conventions/public-folder) 文件夹中的文件;如果您想通过 CDN 提供这些资源,需要自行添加前缀
- 针对 `getServerSideProps` 页面的 `/_next/data/` 请求。这些请求始终会针对主域名发起,因为它们不是静态的。
- 针对 `getStaticProps` 页面的 `/_next/data/` 请求。这些请求始终会针对主域名发起,以支持 [增量静态生成 (Incremental Static Generation)](/docs/pages/building-your-application/data-fetching/incremental-static-regeneration),即使您没有使用该功能(为了保持一致性)。
- 针对 `getStaticProps` 页面的 `/_next/data/` 请求。这些请求始终会针对主域名发起以支持 [增量静态生成 (Incremental Static Generation)](/docs/pages/guides/incremental-static-regeneration),即使您没有使用该功能(为了保持一致性)。

</PagesOnly>
Loading