吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 319|回复: 12
收起左侧

[求助] Vue3+TS图片路径不对问题求助

[复制链接]
qadan 发表于 2024-4-12 16:58
本帖最后由 qadan 于 2024-4-12 20:31 编辑

vite  vue3项目,dev运行图片路径是:vue3根目录/public/static/icon/1.png

根据category的值去匹配路径的图片

build打包后路径是:abc.com/public/static/icon/0.png,正确应该换成abd.com/admin123/static/icon/0.png



如果直接把public换成admin123,run dev运行又不行了

我是这样写的,图片的名称需要动态的
[HTML] 纯文本查看 复制代码
 <div style="display: flex; align-items: center" v-else>
                <img style="width: 27px" :src="getIconSrc(scope.row.category)"/>
              </div>



如果直接写死没问题,动态的路径就不行


————————————————————
举个例子,vue前端404页面有个图片,打包后就没问题,但是我的代码图片是动态的(参考下图),根据索引来获取图片,我试过把图片路径写死就不会报错,如果是动态路径就报错
image.png


总结:本地运行可以,部署到云上路径就出错,找不到图片




______2024年4月12日20:31:41更新


image.png

上面两个图片是代码写死的,路径如下,无法显示的图片是动态的index索引,admin123是yarn run build加上的后端路径
abc.com/admin123/static/icon/0.png代码写死的
abc.com/public/static/icon/6.png,6数字是动态的

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

hejian0301 发表于 2024-4-12 18:43
本帖最后由 hejian0301 于 2024-4-12 18:45 编辑

读一下文档,生产环境不支持动态url;

看你描述,应该没有配置base,但是没明白admin123又是哪来的?

我认为,不需要使用 new URL。

如果没有配置base,直接`/public/static/icon/${index}.png`

如果配置了base: admin123,`/admin123/public/static/icon/${index}.png`

最好贴一下vite配置;
iShot_2024-04-12_18.30.18.png

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
qadan + 1 + 1 谢谢@Thanks!

查看全部评分

zhangzan0224 发表于 2024-4-12 17:13
 楼主| qadan 发表于 2024-4-12 17:15
zhangzan0224 发表于 2024-4-12 17:13
貌似打包的时候 有个publicPath 查一查

应该不是这个问题,举个例子,vue前端404页面有个图片,打包后就没问题,但是我的代码图片是动态的,根据索引来获取图片,我试过把图片路径写死就不会报错,如果是动态路径就报错
mr88fang 发表于 2024-4-12 17:15
你这个“正确应该换成abd.com/admin123/static/icon/0.png” 是怎么来?,怎么打包怎么部署就可以啊!干嘛要把这个文件路径名称给改了???,是用nginx部署的吗?是nginx 代{过}{滤}理 admin123 到 public 路径下了?还是 public 被占用了?
“如果直接把public换成admin123” 那肯定不行啊。
 楼主| qadan 发表于 2024-4-12 17:16
mr88fang 发表于 2024-4-12 17:15
你这个“正确应该换成abd.com/admin123/static/icon/0.png” 是怎么来?,怎么打包怎么部署就可以啊!干嘛 ...

后端thinkphp框架,运行路径public,不需要public这个目录,而打包后的vue正在admin123目录
mr88fang 发表于 2024-4-12 17:26
qadan 发表于 2024-4-12 17:16
后端thinkphp框架,运行路径public,不需要public这个目录,而打包后的vue正在admin123目录

你贴一下打包后目录结构是怎么样的,或者写一下
啊笨 发表于 2024-4-12 18:52
是不是<script setup>没有抛出这个变量。在这种模式下变量不可见。需要手动抛出
啊笨 发表于 2024-4-12 18:55
看你的示例代码里面更本没有admin123这个文件夹????这个文件夹哪里来的?
 楼主| qadan 发表于 2024-4-12 20:17
啊笨 发表于 2024-4-12 18:55
看你的示例代码里面更本没有admin123这个文件夹????这个文件夹哪里来的?

yarn run build 打包后的路径是后端域名/admin123
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-2 00:17

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表