NEXTJS - 公共图像未显示在动态路线上

Posted

技术标签:

【中文标题】NEXTJS - 公共图像未显示在动态路线上【英文标题】:NEXTJS - public images not showing on dynamic routes 【发布时间】:2021-09-20 11:21:16 【问题描述】:

我在从我的 public/images 文件夹中提供静态图像时遇到问题。

它正确显示在我目前正在处理的文件中除了动态文件 [itemId].js(如下图所示)

我得到的最有趣的线索是控制台中的这个错误。

http://localhost:3000/items/_next/static/image/public/images/banner-big.f496e182c5dd297c1d1c030d9b7436d8.png?auto=format&fit=max&w=1920 404 (Not Found)

它试图从 /items 提供服务,这根本不是我想要的......

有谁知道这背后的诀窍是什么?如果您需要更多信息,请告诉我。

// in components/Header.js (which is wrapping all of my pages)
import bannerBig from "../public/images/banner-big.png";

// then i use it this way with the Image component from next/image
 <Image src=bannerBig  width=1920 height=800/>

组件生成的 img 看起来像这样,并且在我的所有页面中都是相同的:

<img  src="_next/static/image/public/images/banner-big.f496e182c5dd297c1d1c030d9b7436d8.png?auto=format&amp;fit=max&amp;w=3840" decoding="async" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%" srcset="_next/static/image/public/images/banner-big.f496e182c5dd297c1d1c030d9b7436d8.png?auto=format&amp;fit=max&amp;w=1920 1x, _next/static/image/public/images/banner-big.f496e182c5dd297c1d1c030d9b7436d8.png?auto=format&amp;fit=max&amp;w=3840 2x">

【问题讨论】:

【参考方案1】:

所以我最终通过在我的静态图像路径之前添加一个“/”来解决这个问题,所以它总是从根目录提供服务

<Image 
    src="/" + bannerBig.src
    
    width=bannerBig.width
    height=bannerBig.height
/>

【讨论】:

以上是关于NEXTJS - 公共图像未显示在动态路线上的主要内容,如果未能解决你的问题,请参考以下文章

使用 Nextjs 和 GSAP 悬停在标题上动态显示图像

Nextjs:无法从静态文件夹加载图像

Jupyter Notebook ipynb 中的图像未显示在 GitHub 私有存储库中,但相同的代码适用于公共存储库

最长公共子序列未显示结果

Firebase 存储图像未显示在 nextjs 应用程序中

如何在公共交通路线请求中获得多个“publicTransportLine”?