小元
博客
详情文字在这里缓缓展开
静候你翻开这一页

Vite - assetsInlineLimit属性

Vite打包后部分图片在线上模式下变为Base64的解决方法和原因。

   起因:

       Vite项目在打包后,线上环境下部分图片的路径转变为了Base64,本文详细的复现了过程和解决方法以及原因。


   复现过程:

       1. 在新项目中引用了三张图片(详见图一),此三张图均放置于src/assets目录下。

       图一:

       1757469557980.png


         2. 在生产模式下,F12查看源码可以看img的src均为对应路径(详见图二)

           图二:

           1757469699601.png


       3. 打包后,在dist目录下运行serve指令,创建一个静态服务器,运行当前文件,模拟线上环境,此时F12查看源码,发现第一个img和第三个img的路径变成了Base64格式。(详见图三)

# 如果你没有安装serve模块则需要全局先行安装后再运行
npm install -g serve

       图三:

       1757470332586.png



   原因:

      Vite脚手架的默认的优化项“assetsInlineLimit“有关,它的作用是小于此阈值的导入或引用资源将内联为 base64 编码,以避免额外的 http 请求,它的默认值是4096即4kb,换句话说就是小于4K的图片都会被编码成Base64,知道了病因所在,那么它的解决办法也很简单了。


   解决方法

       在vite.config.ts或js中,配置如下信息。

       第一种将“assetsInlineLimit“设置为0,所有图片都不会再压缩,第二种将“assetsInlineLimit“设置为理想状态下的阈值,那么只有小于该阈值的图片才会被转换,具体内容详看此处 Vite文档。

export default defineConfig({
  plugins: [vue()],
  build: {
    assetsInlineLimit: 0
  }
})

       

渝ICP备2024031078号-1
本网站一切内容不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
如无意中侵犯了企业或个人的知识产权等,请及时通过电子邮件(1102905617@qq.com)告知我,本网站将会给予删除。
最新公告
😊访客你好,很高兴你的到来,本博客仍在建设中,还有些许功能尚在开发中,最后祝你在此能有所收获。
💥小元博客第三代自2025年9月上线以来,2026/08/09日迎来了它的第三次更新本次更新内容如下:
1. 文章详情页样式变更,由原来的弹窗改为单独的页面。
2. 使用Nuxt对项目进行了SEO优化,优化了搜索引擎的抓取和索引。
3. 对验签进行了优化,降低了请求被误触发拦截的概率。
4. 移动端也正在稳步推进中,在不久的将来会与大家见面。
5. 修复了首页黄历节日不显示的问题,以及其它bug的修复。