当前位置: 首页 > 知识库问答 >
问题:

前端 - Vite打包后SCSS引用的图片路径不对,该如何解决?

楮庆
2024-06-20

为什么vite打包后scss中引用的图片路径不对
vite配置如下:

build: {    rollupOptions: {      // 静态资源分类打包(部署要区分js,css,img文件夹,对应后端的配置)      output: {        chunkFileNames: 'js/[name]-[hash].js',        entryFileNames: 'js/[name]-[hash].js',        assetFileNames: (assetInfo) => {          if (extname(assetInfo.name) === '.css') {            return `css/[name]-[hash].[ext]`;          } else {            return `img/[name]-[hash].[ext]`;          }        }      }    }  }

scss文件和图片文件目录结构如下:
image.png
打包后的目录结构:
image.png
打包后的css文件中的图片引用:
image.png
打包后正确的引用路径应该是这样:url(../img/add-1bd6048f.svg)

大佬问解惑下,为什么打包后的图片引用不对。
如果可以,不改变现有的文件目录和打包后的目录结构
现有的项目文件目录要合规范,所以这样放置。
打包后的目录是部署要求要这样的结构。

共有1个答案

连文栋
2024-06-20

这个图片不需要被 vite 处理的,放在 public 目录下,使用 /pic-name.svg 引入。

 类似资料:
  • Vite + Vue3 + Electron 打包后静态资源路径错误 图片 src 如果是动态拼接的话,路径指向会出现问题 第一个路径不正确:file:///G:/vite.svg 第二个路径为:file:///G:/vite-electron/release/win-unpacked/resources/app.asar/dist/vite.svg 还有这种字体文件导入也会出现问题,类似上面直接

  • 本文向大家介绍解决vue单页面应用打包后相对路径、绝对路径相关问题,包括了解决vue单页面应用打包后相对路径、绝对路径相关问题的使用技巧和注意事项,需要的朋友参考一下 在项目开发过程中,在部署过程中,用到了反向代理,这就要求前端代码中不能使用绝对路径。但是我们知道,一般情况下,通过webpack+vuecli默认打包后的HTML、css、js等文件,使用的都是绝对路径。下面可以举几个例子来看一下:

  • 本文向大家介绍webpack打包后直接访问页面图片路径错误的解决方法,包括了webpack打包后直接访问页面图片路径错误的解决方法的使用技巧和注意事项,需要的朋友参考一下 前言 本文说的这种图片路径错误是这样的,运行webpack-dev-server,一切正常,没有错误。当webpack之后,直接打开index页面,报错,图片找不到,找不到的原因是路径错误。 先看我的项目代码 webpack.c

  • 页面代码中引用本地图片: 页面中的地址: 我想将 /src/assets/image/login/icon_login.png 变成 http://localhost:3000/src/assets/image/login/icon_login.png 应该如何配置? 我配置了vite里的base 没有效果

  • 由于项目的一些原因,我需要在打包的时候开启 cssCodeSplit 配置项目。如下图: 这样就会造成我每次打包的时候,就会在 dist 目录下自动生成这两个文件。 现在的问题就是,别的项目引入这个组件库的时候,必须在 main.ts 文件写两行这样的代码,引入样式文件以后才能正常使用我的这个组件库。 问题:vite 有没有什么配置可以设置打包后的文件路径呢?比如可以在每次打包的时候自动生成一个

  • 本文向大家介绍如何引入scss?引入后如何使用?相关面试题,主要包含被问及如何引入scss?引入后如何使用?时的应答技巧和注意事项,需要的朋友参考一下 安装scss依赖包: 在build文件夹下修改 webpack.base.conf.js 文件: 在 module 下的 rules 里添加配置,如下: 应用: 在vue文件中应用scss时,需要在style样式标签上添加lang="scss",即

  • 刚接触vite,请问一下打包时如何合并重复的包?就像webpack可以使用alias来合并

  • 项目用的 vue3+vite,包管理器 pnpm,执行 pnpm build。 生成的js为啥把路由劝返回出来了。被检测存在系统路径信息泄露,怎么解决呢 vite配置文件build部分: build生成的js文件: