如何显示图像(如果存在)或默认(如果不存在)
How to display an image if it exists or a default if it doesn't
试图弄清楚如何显示图像(如果存在)或默认设置(如果不存在)。这是我目前所知道的,但是检查文件的语句似乎不起作用:
@if (file_exists(public_path('img/{{ $product->sku }}.jpg')))
<img src="img/{{$product->sku}}.jpg">
@else
<img src="img/logo.gif">
@endif
这是我的完整 blade 代码。除图片外一切正常:
<div class="products-gallery">
<h2>{{$product->prd->description_long}}</h2>
<p><strong>ITEM SKU:</strong> {{$product->sku}}</p>
<p><strong>PRICE:</strong> {{$product->prd->Jobber}}</p>
@if (file_exists(public_path('img/{{$product->sku}}.jpg')))
<img src="img/{{$product->sku}}.jpg">
@else
<img src="img/logo.gif">
@endif
</div>
使用 asset('/img/' . $product->sku . '.jpg') 方法
@if (file_exists(public_path().'/img/'.$product->sku))
<img src="{{ asset('img/'.$product->sku) }}">
@else
<img src="{{ asset('img/logo.gif') }}">
@endif
图片扩展(如您所述.jpg
)在您上传时默认保存。希望对您有所帮助!
虽然您询问了 Laravel
实现,但您也应该知道您可以在纯 javascript 中执行并避免验证文件的存在:
<img src="img/{{$product->sku}}.jpg" onerror="this.onerror=null;this.src='img/logo.gif';" />
编写更少的代码,这也将处理其他错误(例如文件存在但已损坏)。
希望对您有所帮助。
试图弄清楚如何显示图像(如果存在)或默认设置(如果不存在)。这是我目前所知道的,但是检查文件的语句似乎不起作用:
@if (file_exists(public_path('img/{{ $product->sku }}.jpg')))
<img src="img/{{$product->sku}}.jpg">
@else
<img src="img/logo.gif">
@endif
这是我的完整 blade 代码。除图片外一切正常:
<div class="products-gallery">
<h2>{{$product->prd->description_long}}</h2>
<p><strong>ITEM SKU:</strong> {{$product->sku}}</p>
<p><strong>PRICE:</strong> {{$product->prd->Jobber}}</p>
@if (file_exists(public_path('img/{{$product->sku}}.jpg')))
<img src="img/{{$product->sku}}.jpg">
@else
<img src="img/logo.gif">
@endif
</div>
使用 asset('/img/' . $product->sku . '.jpg') 方法
@if (file_exists(public_path().'/img/'.$product->sku))
<img src="{{ asset('img/'.$product->sku) }}">
@else
<img src="{{ asset('img/logo.gif') }}">
@endif
图片扩展(如您所述.jpg
)在您上传时默认保存。希望对您有所帮助!
虽然您询问了 Laravel
实现,但您也应该知道您可以在纯 javascript 中执行并避免验证文件的存在:
<img src="img/{{$product->sku}}.jpg" onerror="this.onerror=null;this.src='img/logo.gif';" />
编写更少的代码,这也将处理其他错误(例如文件存在但已损坏)。
希望对您有所帮助。