【问题标题】:Laravel check for asset existenceLaravel 检查资产是否存在
【发布时间】:2015-07-19 15:12:03
【问题描述】:

我想在尝试输出文件之前检查资产 {{ asset }} 是否存在。

经过一些谷歌搜索后,我尝试了一些东西,但似乎没有一个适用于 Laravel 5.0。

我想象的请求(在前端刀片视图中)的示例;

@if(asset(path-to-asset))
   <img src="image-path"/>
@else
   <img src="no-image-path"/>
@endif

谢谢

【问题讨论】:

    标签: laravel laravel-5 blade


    【解决方案1】:

    除了使用原生 php 方法 here

    你可以使用:

    if (File::exists($myfile)){ ... }
    

    但是,您应该注意,asset(...) 将返回资产的绝对 URL,但您需要检查其在文件系统中是否存在,因此您需要如下路径:

    $img = path('public').'/path/to/image.png';
    

    【讨论】:

      【解决方案2】:

      最好从网络服务器处理这个问题,因为文件存在并不意味着它可以被公共网络访问。也意味着您不会到处重复代码来检查文件是否存在,请参阅:Replace invalid image url with 404 image

      但是这可以通过 PHP 来完成

      @if (file_exists(public_path('path/to/asset.png')))
          <img src="{{ asset('path/to/asset.png') }}">
      @else
          <img src="{{ asset('path/to/missing.png') }}">
      @endif
      

      【讨论】:

      • 在你的第一句话中,你的意思是client吗?
      • @lukasgeiter 不,网络服务器(Apache、Nginx 等)是正确的。与网络服务器基本相同的行为,检查文件是否存在,如果不存在,则重写以提供“404 图像”占位符。
      • 谢谢@Wader。在此特定情况下,处理视图中的图像 404 更合适。很好的答案,谢谢
      【解决方案3】:

      试试这个方法: 对于 Laravel:

      <?php
                              $image = parse_url($user->image);
                              if(isset($image['host'])){
                                   $image= $user->image;
                                  }
                              else if($image==null){ 
                                  $image= Request::root().'/uploads'.'/subsystems_icons/'.'democp.jpg';   
                              }
                              else {
                                  $image= Request::root().'/uploads/'.$user->image;
                              }
                          ?>
                         
                      <div class="">
                          <img class="image" style="width: 100%; height: 300px; object-fit: contain ;"
                              src="{{$image}}">
                      </div>
      

      【讨论】:

        猜你喜欢
        • 2018-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-02
        • 1970-01-01
        • 1970-01-01
        • 2014-03-27
        • 1970-01-01
        相关资源
        最近更新 更多