【发布时间】:2021-03-10 23:13:15
【问题描述】:
我正在使用 next.js 并尝试像这样动态获取图像:
{list.map((prod) => (
<div className={styles.singleProduct}>
<h6>{prod.Brand.toUpperCase()}</h6>
<p>{prod.ProductName}</p>
<img
src={require(`../public/assets/products/${prod.ProductName
.replace(" ", "-")}.png`)}
/>
</div>
))}
使用此代码,我收到以下错误:“./public/assets/products/Product-One.png 1:0 模块解析失败:意外字符 '�' (1:0)"
当我对图像进行硬编码时,一切正常,f.ex.:
...
<img
src={require(`../public/assets/products/Product-One.png`)}
/>
...
所以我想我会因为动态变量而得到错误?!有人可以帮我解决这个问题吗?非常感谢!
【问题讨论】:
-
你在使用 Webpack 加载器来处理图片吗?
-
我正在使用来自 create-next-app 的 webpack 的默认配置。我是新开发的,所以我没有改变任何东西。这是一个可能有帮助的链接:nextjs.org/docs/api-reference/next.config.js/…
-
另外我正在使用下一个图像:npmjs.com/package/next-images
-
您可以尝试使用字符串吗:
require("../public/assets/products/" + prod.ProductName.replace(" ", "-") + ".png") -
能分享一下 next.config.js 代码吗?不严格相关,但 .map 的根元素缺少键。设置一个看看有没有帮助
<div key={prod.ProductName} className={styles.singleProduct}>
标签: javascript next.js