Laravel中如何将MySQL存储的图片设置为背景图
Laravel中设置数据库存储图片为背景图的解决方法
问题出在背景图的路径没有生成正确的绝对URL,你在<img>标签里用了url()函数能正常显示,但背景图代码里直接使用了存储的相对路径,浏览器无法正确解析。
正确代码
将背景图的路径替换为和<img>标签一样的url()辅助函数生成的路径:
<div class="banner-services-bg" style="background-image: url('{{ url($pageData->image) }}');"> </div>
或者使用asset()函数,效果完全一致:
<div class="banner-services-bg" style="background-image: url('{{ asset($pageData->image) }}');"> </div>
原因说明
你数据库中存储的image字段是相对路径(uploads/1/2023-03/car_with_driver.jpg),直接写在background-image的url()里时,浏览器会以当前页面的URL为基准拼接路径,导致找不到图片。而url()或asset()函数会生成基于项目根目录的绝对URL,和<img>标签的逻辑一致,能让浏览器准确定位到图片文件。
另外确认你的uploads目录确实在项目的public文件夹下,这两个辅助函数默认都是指向public目录的,和你当前的存储结构匹配。
内容的提问来源于stack exchange,提问作者Ahmad
相关产品推荐
相关产品推荐

