string | 'auto'
在 生产模式 下,可以使用该选项设置静态资源的 URL 前缀,比如设置为 CDN 地址。
assetPrefix
会影响构建产物中绝大部分静态资源的 URL,包括 JavaScript 文件、CSS 文件、图片、视频等。如果指定了一个错误的值,则在加载这些资源时可能会出现 404 错误。
该配置项仅用于 production
模式或 none
模式。在 development
模式下,请使用 dev.assetPrefix 配置项进行设置。
设置 output.assetPrefix
后,JavaScript、CSS、图片等静态资源的 URL 都会加上 output.assetPrefix
的值作为前缀。
构建后,HTML 产物中加载 JS bundle 的 URL 如下:
构建后,HTML 产物中加载 JS bundle 的 URL 如下:
output.assetPrefix
的默认值与 server.base 相同。
当 server.base
为 /foo
时,可通过 http://localhost:3000/foo/
访问到 index.html
及静态资源产物。
需要注意的是,当自定义 output.assetPrefix
选项时,如果希望静态资源能够通过 Rsbuild 预览服务器正常访问,output.assetPrefix
应和 server.base
包含相同的 URL 前缀,如:
assetPrefix 可以设置为以下类型的路径:
/assets/
,或是设置为 CDN 路径,比如 https://cdn.example.com/assets/
。./assets/
。通常不建议将 assetPrefix 设置为相对路径,因为当资源位于不同的路径深度时,使用相对路径可能会导致资源无法正确加载。
publicPath
output.assetPrefix
的功能与 Rspack 的 output.publicPath 配置基本一致。
它与原生配置的区别在于:
output.assetPrefix
仅在生产模式下生效。output.assetPrefix
默认值与 server.base 相同。output.assetPrefix
默认会自动补全尾部的 /
。output.assetPrefix
的值会写入 process.env.ASSET_PREFIX 环境变量(只能在 client 代码中访问)。使用 Rspack 提供的 __webpack_public_path__
变量,可以在 JavaScript 代码中动态设置静态资源 URL 的前缀。