You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NuxtJS静态站点刷新后图片损坏 跳转返回才正常如何修复

问题原因
  • 你存放在static目录下的资源,引用时使用了不带根路径前缀的相对路径gameImages/box_image.png,浏览器解析相对路径时会以当前页面的URL作为基准:
    • 刷新页面时,浏览器直接从服务端加载HTML,如果当前页面URL不是站点根路径(比如位于/games/list),会将图片路径拼接为当前URL/gameImages/box_image.png,对应资源不存在,导致图片加载失败
    • 客户端路由跳转(从其他页面返回当前页)时,Nuxt的上下文默认以站点根为路径基准,相对路径会被正确解析到static目录下的资源,因此图片可以正常加载
  • 你通过Nuxt Content模块读取的路径是纯字符串,没有经过webpack的资源处理逻辑,不会自动转换为绝对路径,因此路径解析规则完全遵循浏览器原生逻辑
修复方案

方案1:直接修改内容标记文件的路径

将所有内容标记文件中boxImage字段的路径前添加根路径斜杠/,示例:

index: 3
boxImage: /gameImages/box_image.png
title: game title
pageName: games/whatever

该方案无需修改业务代码,适用性最强。

方案2:模板层统一拼接根路径

如果不想批量修改所有内容标记文件,可以直接修改图片的src属性,强制拼接根路径前缀:

<template>
  <NuxtLink :to="game.pageName">
    <img :src="`/${game.boxImage}`" :height="gamePanelHeight" class="elevation-4" alt="游戏封面" />
  </NuxtLink>
</template>

如果部分boxImage字段本身已经带有/前缀,需要先做去重处理,避免出现//gameImages/xxx.png的错误路径。

内容的提问来源于stack exchange,提问作者hipsterstomper69

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:12:00