Laravel中如何在asset助手函数内使用{{}}语法?
问题解决:Laravel中asset()调用的Blade语法错误
你犯了Blade语法的基础错误——不能在{{ }}标签里嵌套另一个{{ }}。
原来的写法里,asset()函数内部的{{ $client->image->path }}会被Blade当成纯字符串输出,不会解析成实际的路径值,最终生成的URL会是/storage/{{ $client->image->path }},这显然不是你要的结果,所以图片加载失败。
正确的写法是直接在asset()里用变量拼接字符串,两种方式都可以:
- 用点号拼接:
<img src="{{ asset('/storage/' . $client->image->path) }}">
- 用花括号包裹变量(适合双引号字符串):
<img src="{{ asset("/storage/{$client->image->path}") }}">
另外补充一句:直接写/storage/{{ $client->image->path }}能生效,是因为浏览器会自动把这个相对路径拼接到当前网站域名后,但asset()的优势是能生成完整的绝对URL,在配置CDN、子域名或者不同存储位置时更稳定可靠。
内容的提问来源于stack exchange,提问作者James Erikson
相关产品推荐
相关产品推荐

