【问题标题】:Laravel and images displayLaravel 和图像显示
【发布时间】:2016-11-22 09:16:51
【问题描述】:

我正在使用 laravel 5.2,此时我正在使用内置的 php 服务器测试我的视图。为了在视图中显示图像,我使用了这段代码

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

当我通过浏览加载页面时,我看不到图像,如果我尝试检查我看到的代码

<img src="http://localhost:8010/images/logo.png" alt="logo">

然后,如果我尝试点击图片的链接,我看不到图片,但它是代码:

http://p4c.it/test.jpg

很明显我做错了什么,这个问题与mime类型的定义有关吗?对于我看到的 {{asset('my_file_here')}} 可以很好地处理 css 文件和 jvascript。

【问题讨论】:

  • 路径将是http://localhost:8010/laravel_dir_name/images/logo.png?
  • 如果它在资产文件夹中
  • 好吧,我不认为它与目录结构有关,因为当我打开视图 p4c.it/log.txt 时,内置的 php 服务器 php artisan serve --port=8010 会为我提供这些日志......没有 404 错误.. . 我只有 200 个错误,并且图像在公共目录中

标签: php laravel png jpeg


【解决方案1】:

首先创建虚拟主机并检查您的图像文件夹权限。

【讨论】:

  • 我仔细检查了chown -R www-data:www-data ./public && chmod -R 644 ./public
【解决方案2】:

资源文件夹用于存储刀片视图、本地化和未编译的 css/js 文件(SASS、LESS 等)(如 Laravel 文档中的 here 所述)。而是将您的图片放在public 文件夹内的子文件夹中。 public 文件夹默认应该有足够的权限,然后它应该可以工作。请务必仔细检查这些权限(应为 775、755 或 777,具体取决于您的偏好)。

--

我推荐你使用laravelcollective/html,它可以让你用blade 语法轻松地创建HTML。它们似乎没有显示您可以使用此软件包执行的所有操作,但您最终将能够执行以下操作:

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

您也可以使用它来传递alt 或类,例如:

{!! Html::image('images/logo.png', 'your alt', ['class' => 'your classes here']) !!}

【讨论】:

    【解决方案3】:

    问题与权限和内置 php 服务器有关,事实上我在我的 nginx 服务器中设置了一个站点可用的 conf 文件,一切正常。

    【讨论】:

      猜你喜欢
      • 2018-05-28
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-29
      • 2021-01-13
      • 2016-12-20
      • 2018-07-31
      相关资源
      最近更新 更多