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

Vite+Lit Element项目作为Bundle供其他应用时资源加载404求助

解决Vite打包后资源(图片/字体)404问题(Lit Element场景)

一、问题核心

就是相对路径配置的问题。Vite默认用绝对路径打包资源,当你的bundle.js被其他应用在非根目录环境下引用时,绝对路径会指向错误位置,导致dist/assets里的图片、字体找不到。

二、修改Vite配置文件

在vite.config.js中添加相对路径配置,让打包后的资源路径适配任意部署位置:

import { defineConfig } from 'vite';
import { litPlugin } from 'vite-plugin-lit';

export default defineConfig({
  plugins: [litPlugin()],
  base: './', // 关键设置:将资源基准路径改为相对路径
  build: {
    outDir: 'dist', // 确保输出目录与你的结构一致
    assetsDir: 'assets', // 指定资源打包到assets文件夹
  },
});

三、Lit Element中正确引用资源

在组件里不要写死资源路径,用ES模块导入的方式让Vite自动处理路径映射:

图片引用示例

import { LitElement, html } from 'lit';
// 直接导入资源文件,Vite会自动处理路径
import demoImage from './assets/demo.png';

class DemoComponent extends LitElement {
  render() {
    return html`
      <img src="${demoImage}" alt="演示图片">
    `;
  }
}
customElements.define('demo-component', DemoComponent);

字体引用示例(style.scss中)

@font-face {
  font-family: 'CustomFont';
  // 用相对路径引用字体,Vite打包时会自动转换为正确路径
  src: url('./assets/custom-font.ttf') format('truetype'),
       url('./assets/custom-font.woff2') format('woff2');
}

四、验证修复效果

重新执行npm run build,检查dist/assets目录是否包含所有图片、字体文件,同时查看打包后的bundle.js或css文件,确认资源路径是以./assets/xxx开头的相对路径即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 23:12:03