NX+Next.js 13单体仓库共享资源库配置失效致404问题求助
解决NX单体仓库中Next.js项目共享库资源404问题
你的assets配置核心问题是output路径设置错误,Next.js仅识别项目根目录下的public文件夹作为静态资源根目录,把资源输出到上级目录./..会导致框架无法读取。
正确配置步骤
- 修改共享库
project.json中的assets配置,将资源输出到依赖项目的public子目录下:
"assets": [ { "input": "libs/my-lib/public", "glob": "**/*", "output": "public/assets/my-lib" } ]
这个配置会让NX在构建依赖该共享库的Next.js项目时,把共享库的静态资源复制到项目的public/assets/my-lib目录中。
- 在Next.js项目中引用资源时,使用相对
public根目录的路径:
// 示例:引用共享库中的logo.png <img src="/assets/my-lib/logo.png" alt="共享库Logo" />
额外检查项
- 确保Next.js项目的
project.json或package.json中已正确添加该共享库的依赖 - 运行
nx build [你的项目名]后,查看dist/apps/[你的项目名]/public/assets/my-lib目录,确认资源已被复制 - 如果你的NX版本较新,确认assets配置是在
targets.build.options节点下,而非其他位置
内容的提问来源于stack exchange,提问作者Bon Andre Opina
相关产品推荐
相关产品推荐

