【问题标题】:Laravel Blade html imageLaravel Blade html 图片
【发布时间】:2015-07-03 16:25:03
【问题描述】:

我的图片文件路径是public/img/logo.png
我的 app.blade.php 文件路径是resources/views/app.blade.php

在我的 app.blade.php 文件中,我使用 {{HTML::image('/img/stuvi-logo.png')}}
显示图像。
我不明白为什么这找不到图像。
image()方法的根目录是什么?

【问题讨论】:

  • public/img/logo.png 无法在/img/stuvi-logo.png 获得,我的意思是,即使文件名不同。这是问题还是您的程序中的错字?
  • 如果你检查你的渲染代码,你会看到什么?它的网址是否正确?

标签: laravel image laravel-blade


【解决方案1】:

它将在 public/storage 文件夹中查找图像,您可以在其中定义自己的 image 文件夹

<img src="{{ Storage::url($post->image->path) }}" alt="">

始终尝试转储您首先要查找的内容,然后将其传递给 url 方法。

另外,如果你有一些,你可以在你的 Image 模型中创建你自己的 url() 方法

public function url()
{
    return Storage::url($this->path);
}

然后在您的刀片模板中,您可以按如下方式使用此方法:

<img src="{{ $post->image->url() }}" alt="">

【讨论】:

    【解决方案2】:

    假设您要显示的文件是公开的,请尝试在您的邮件构建器函数中添加变量。

    public function toMail($notifiable)
    {
        $img_url = env('APP_URL')."/img/stuvi-logo.png";
    
        return (new MailMessage)
                    ->subject('Test')
                    ->markdown('vendor.mail.markdown.message', [
                                                        'data' => $this->data,
                                                        'img_url'=>$img_url
            ]);
    }
    

    然后使用电子邮件刀片文件中数组中设置的“img_url”变量。

    < img src={{img_url}} alt="Logo" height="50"/>
    

    这在 Laravel 8.xx 上对我有用。

    【讨论】:

      【解决方案3】:

      可以使用asset()直接访问图片文件夹。

      <img src="{{asset('img/stuvi-logo.png')}}" alt="logo" class="img-size-50 mr-3 img-circle">
      

      【讨论】:

        【解决方案4】:

        到目前为止,您可以使用

        <img src="{{ asset('images/foo.png') }}" alt="tag">
        

        【讨论】:

        • 也适用于background-image 属性
        • 是的,当然,它会按预期工作,因为它是由 php 处理的。
        • 适用于 laravel 8
        【解决方案5】:

        在我的情况下,这非常有效

        <img  style="border-radius: 50%;height: 50px;width: 80px;"  src="<?php echo asset("storage/TeacherImages/{$studydata->teacher->profilePic}")?>">
        

        此代码用于显示文件夹中的图像

        【讨论】:

          【解决方案6】:

          在 Laravel 5.x 中,你也可以这样做。

          &lt;img class="img-responsive" src="{{URL::to('/')}}/img/stuvi-logo.png" alt=""/&gt;

          【讨论】:

          • 虽然这段代码 sn-p 可以解决问题,但它没有解释为什么或如何回答这个问题。请include an explanation for your code,因为这确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
          【解决方案7】:

          更改 /img/stuvi-logo.png 改为 img/stuvi-logo.png

          {{ HTML::image('img/stuvi-logo.png', 'alt text', array('class' => 'css-class')) }}
          

          生成以下 HTML

          <img src="http://your.url/img/stuvi-logo.png" class="css-class" alt="alt text">
          

          【讨论】:

            【解决方案8】:

            如果你使用 bootstrap,你可能会使用这个 -

             <img src="{{URL::asset('/image/propic.png')}}" alt="profile Pic" height="200" width="200">
            

            注意:在 public 文件夹中创建一个名为 image 的新文件夹,然后将您的图像放在那里。使用URL::asset()可以直接访问public文件夹。

            【讨论】:

              【解决方案9】:

              与 laravel 5.3.. 有同样的问题。 我就是这样做的,而且非常容易。 例如刀片页面视图中的徽标

              ****<image img src="/img/logo.png" alt="Logo"></image>****
              

              【讨论】:

                【解决方案10】:

                在 Laravel 5.x 中,您可以使用 laravelcollective/html 和语法:

                {!! Html::image('img/logo.png') !!}
                

                【讨论】:

                • 无关!! Html 包已从 Laravel 5 中删除。您仍然可以使用它,但您需要在框架中明确包含该包。我认为值得一说...
                • 我更正了答案以指定 laravelcollective/html 包
                • 安装 Forms & HTML 集合包 (5.3) 后,接受答案中的语法和这个都可以使用。这个答案不需要大写HTML ..我偶然发现了那个..
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2014-12-10
                • 2017-01-05
                • 2020-03-11
                • 2023-01-22
                • 2019-02-28
                • 2016-04-27
                相关资源
                最近更新 更多