下一张图片破坏了我的 next.js 项目中的所有绝对路径
next-images breaking all the absolute paths in my next.js project
我想在我的 next.js 项目中使用内联 png 图像。由于这不是本机支持的功能,因此我为此使用 next-images
库。
这是我的next.config.js
const withImages = require('next-images')
module.exports = withImages()
问题不在于图像导入,而是所有其他导入:该代码破坏了我项目中的所有绝对 .jsx
导入。
知道如何解决这个问题吗?
正如上面提到的用户@juliomalves,Next.js官方文档中的答案是on this link
基本上,问题已通过 2 个步骤解决:
添加 jsconfig.json
文件(如果您使用的是 Typescript,则应改用 tsconfig.json
)。
将所有绝对路径从 /components/Something
更改为 components/Something
(换句话说,删除第一个正斜杠)。
next/image
的默认行为会将 /_next/image?url=
添加到图像 src
的任何绝对值 URL。
解决方法是使用 imgix loader
并将路径设置为 ''
:
// next.config.js
module.exports = {
images: {
domains: ['yourServer.com'],
path: '',
loader: 'imgix',
},
}
从源代码中,将 root = '/_next/image?url=...'
添加到任何绝对 URL src
是设计使然:
https://github.com/vercel/next.js/blob/f81a6a5f0fc3a33a51112d4d3261d431e704b0da/packages/next/client/image.tsx#L862
为什么?
有点奇怪,不同于HTML <image src="">
行为,让用户也很困惑。
您可以关注 https://github.com/vercel/next.js/issues/19206 以获得 follow-up
我想在我的 next.js 项目中使用内联 png 图像。由于这不是本机支持的功能,因此我为此使用 next-images
库。
这是我的next.config.js
const withImages = require('next-images')
module.exports = withImages()
问题不在于图像导入,而是所有其他导入:该代码破坏了我项目中的所有绝对 .jsx
导入。
知道如何解决这个问题吗?
正如上面提到的用户@juliomalves,Next.js官方文档中的答案是on this link
基本上,问题已通过 2 个步骤解决:
添加
jsconfig.json
文件(如果您使用的是 Typescript,则应改用tsconfig.json
)。将所有绝对路径从
/components/Something
更改为components/Something
(换句话说,删除第一个正斜杠)。
next/image
的默认行为会将 /_next/image?url=
添加到图像 src
的任何绝对值 URL。
解决方法是使用 imgix loader
并将路径设置为 ''
:
// next.config.js
module.exports = {
images: {
domains: ['yourServer.com'],
path: '',
loader: 'imgix',
},
}
从源代码中,将 root = '/_next/image?url=...'
添加到任何绝对 URL src
是设计使然:
https://github.com/vercel/next.js/blob/f81a6a5f0fc3a33a51112d4d3261d431e704b0da/packages/next/client/image.tsx#L862
为什么?
有点奇怪,不同于HTML <image src="">
行为,让用户也很困惑。
您可以关注 https://github.com/vercel/next.js/issues/19206 以获得 follow-up