NextJS 12如何禁用public文件夹国际化(i18n)静态资源语言前缀路径
NextJS 12 i18n子路径模式下静态资源访问问题解决方案
当启用NextJS自带的i18n子路径模式后,非默认语言下静态资源被自动加上语言前缀的问题,可以通过以下方式解决:
使用绝对路径引用静态资源
所有静态资源(图片、样式文件等)的引用都改用绝对路径(以/开头),而非相对路径。这种方式会让资源直接指向根目录下的public文件夹,不会被添加语言前缀。
示例代码:// 普通img标签引用图片 <img src="/images/logo.png" alt="网站logo" /> // next/image组件引用图片 import Image from 'next/image'; <Image src="/images/banner.jpg" alt="横幅" width={800} height={400} /> // CSS中引用背景图 .hero-section { background-image: url('/images/hero-bg.jpg'); }规范public目录结构
确保静态资源直接放在public根目录的对应文件夹中(比如public/images/),不要按语言拆分目录。这样绝对路径就能正确定位资源,无需额外配置。禁用相对路径引用
不要使用./或../开头的相对路径引用静态资源,这类路径会被NextJS的i18n路由机制自动添加语言前缀,导致资源路径变为/en/images/xxx.png这类格式。
内容的提问来源于stack exchange,提问作者Mantofka
相关产品推荐
相关产品推荐

