返回列表 发布新帖
查看: 201|回复: 0

Vue动态图片导入与生产环境部署解决方案

发表于 2025-9-9 17:01:38 | 查看全部 |阅读模式

这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 zzz 于 2025-9-9 17:06 编辑

问题原因:Vite在开发和生产环境下处理静态资源的方式不同。开发环境使用原生ES模块导入。而生产环境会对资源进行哈希处理并复制到assets目录。
解决方案:
  1.使用正确的导入方法。
  2.确保构建配置正确。
  3.使用public目录存放完全静态的资源。
  1. // 解决方案1:在Vite项目中正确导入图片
  2. const images = import.meta.glob('@/assets/images/*.{png,jpg,jpeg,svg,gif}', {
  3. eager: true,
  4. import: 'default'
  5. });

  6. // 转换为可用格式
  7. const imageMap = {};
  8. for (const path in images) {
  9. const imageName = path.split('/').pop();
  10. imageMap[imageName] = images[path];
  11. }

  12. // 在组件中使用
  13. const imageUrl = imageMap['example.jpg'];

  14. //解决方案2:对于动态路径,使用new URL
  15. const getImageUrl = (name) => {
  16. return new URL(`./assets/images/${name}`, import.meta.url).href;
  17. };

  18. // 在组件中使用
  19. const imageUrl = getImageUrl('example.jpg');
复制代码
  1. // vite.config.js
  2. export default defineConfig({
  3.   plugins: [vue()],
  4.   assetsInclude: ['**/*.gltf', '**/*.glb'] // 添加需要处理的文件类型
  5. });
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2025 Suike Tech All Rights Reserved. 随客交流社区 (备案号:津ICP备19010126号) |Processed in 0.114335 second(s), 7 queries , Gzip On, MemCached On.
关灯 在本版发帖返回顶部
快速回复 返回顶部 返回列表