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

Electron Forge vite-typescript插件中静态图片无法渲染的问题求助

Electron Forge vite-typescript插件中静态图片无法渲染的问题求助

我现在在用Electron Forge的vite-typescript插件开发桌面应用,想给dApp加几张图片,但就是渲染不出来,一直报错Failed to load resource: net::ERR_FILE_NOT_FOUND。我的项目结构是这样的:

project
│   README.md
│   index.html    
│   next.config.js
│   forge.config.ts
│   forge.env.d.ts
│   package.json
│   postcss.config.js
│   tailwind.config.js
│   tsconfig.json
│   vite.base.config.ts 
│   vite.main.config.ts 
│   vite.preload.config.ts 
│   vite.renderer.config.ts 
└─── public
│   │   image1.jpg
│   │   image2.jpg
│   │   index.css
└───src
    │   _app.tsx
    │   index.tsx
    │   main.js
    │   preload.js
    │   renderer.ts

图片都放在public文件夹里,按照Vite的规则,public里的文件应该会自动复制到应用根目录的。我在index.tsx里是这么引用图片的:

<div><br></br>
  <center>
    <img style={{ borderRadius: '5%' }} src="/image1.jpg" width="500px" height="300px"/>
  </center>
</div>

但是执行npm run start之后,我的资源里根本没有这些图片,而且我发现.vite文件夹在执行npm run start或者npm run make的时候都没更新,会不会是这个导致的问题啊?


给你几个排查和解决的方向:

  1. 确认Vite渲染器的public目录配置
    先打开你的vite.renderer.config.ts,看看有没有明确指定publicDir,有时候Electron Forge的Vite插件需要手动配置这个路径才能正确识别public文件夹:

    import { defineConfig } from 'vite';
    
    export default defineConfig({
      // 其他已有配置...
      publicDir: './public',
    });
    
  2. 检查打包后的资源是否存在
    执行npm run make之后,去项目根目录的out文件夹里看看打包后的应用目录,确认public里的图片是不是被复制过去了。如果没找到,那大概率是Forge的打包配置有问题,检查下forge.config.ts里的packagerConfig有没有不小心排除了public文件夹,或者makers配置有没有遗漏资源的情况。

  3. 调整图片引用路径
    在Electron的渲染进程里,直接用根路径/image1.jpg有时候会因为路径解析的问题失效,你可以试试这两种方式:

    • 用相对路径:比如../public/image1.jpg(根据index.tsx的位置调整层级)
    • 用Vite的环境变量拼接路径:
      <img src={`${import.meta.env.BASE_URL}image1.jpg`} style={{ borderRadius: '5%' }} width="500px" height="300px"/>
      
  4. 清理缓存重新构建
    手动删掉.vite和out文件夹,然后重新执行npm run start,有时候旧的缓存会导致资源不更新,清空后再构建应该能解决这类问题。

  5. 确认脚本命令的正确性
    检查下package.json里的start和make命令是不是用的Electron Forge的官方脚本,比如应该是"start": "electron-forge start"和"make": "electron-forge make",如果用的是单独的vite命令,可能会跳过Forge的资源打包流程,导致图片没被包含进去。


备注:内容来源于stack exchange,提问作者Akanksha Atrey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 12:03:05