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

使用jQuery修改img标签src属性失败求助(Laravel环境)

问题分析与解决方案

这问题我之前也踩过类似的坑!核心原因是Blade模板语法和JavaScript的执行时机完全不匹配:

  • Blade的{{ asset() }}是服务器端渲染的代码,页面加载时服务器就会把这个表达式转换成对应的URL字符串;而你的photo是客户端JavaScript变量,服务器根本不知道它的存在,所以会把"+photo+"当成固定字符串直接拼进路径里,最终生成的错误URL就是你看到的http://localhost:8000/profile-photos/"+photo+",这肯定找不到图片嘛。

解决方法很简单,把服务器端渲染的基础路径和客户端变量分开处理就行,两种写法都可以:

方法一:先获取基础路径再拼接

// 让Blade先渲染出profile-photos目录的基础URL
var basePhotoUrl = "{{ asset('profile-photos/') }}";
var photo = data.user.photo;
// 再把客户端的文件名拼上去
$("#editThumbnail").attr("src", basePhotoUrl + photo);

方法二:用ES6模板字符串简洁拼接

如果你的项目支持ES6+语法,直接用模板字符串会更清爽:

var photo = data.user.photo;
$("#editThumbnail").attr("src", `${{ asset('profile-photos/') }}${photo}`);

这样当photo是marc.jpg时,最终生成的src就是正确的http://localhost:8000/profile-photos/marc.jpg啦。

另外别忘了检查一下:Laravel项目的public文件夹下确实存在profile-photos目录,而且marc.jpg文件也在里面,不然即使路径对了还是会404哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 23:32:40