【发布时间】:2014-12-04 20:11:40
【问题描述】:
如何在不使用 Laravel 自己的函数(如 assets())的情况下访问存储在 public/images 文件夹中的图像?
我只想获取存储在 images 文件夹中的图像的直接 URL。
例如:
localhost/webapp/images/stackoverflow.png
请求链接时,我应该得到直接图像。
【问题讨论】:
标签: laravel
如何在不使用 Laravel 自己的函数(如 assets())的情况下访问存储在 public/images 文件夹中的图像?
我只想获取存储在 images 文件夹中的图像的直接 URL。
例如:
localhost/webapp/images/stackoverflow.png
请求链接时,我应该得到直接图像。
【问题讨论】:
标签: laravel
你只需要在 Laravel 中使用 asset 辅助函数。 (url helper 也可以这样使用)
<img src="{{ asset('images/arrow.gif') }}" />
对于绝对路径,请改用public_path。
<p>Absolute path: {{ public_path('images/arrow.gif') }}</p>
如果您从控制器(后端)提供公共图像的 URL,您也可以使用 asset,如果您需要 HTTPS,则可以使用 secure_asset。例如:
$url = asset('images/arrow.gif'); # http://example.com/assets/images/arrow.gif
$secure_url = secure_asset('images/arrow.gif'); # https://example.com/assets/images/arrow.gif
return $secure_url;
最后,如果您想直接转到给定路线上的图像,您可以重定向到它:
return \Redirect::to($secure_url);
更多Laravel helper functions可以在这里找到
【讨论】:
就我而言,它工作得很好
<img style="border-radius: 50%;height: 50px;width: 80px;" src="<?php echo asset("storage/TeacherImages/{$teacher->profilePic}")?>">
这用于显示文件夹中的图像我希望这对寻找此类代码的人有所帮助
【讨论】:
只需使用 public_path() 即可找到公用文件夹并自行寻址。
<img src=public_path().'/images/imagename.jpg' >
【讨论】:
<img src="public_path().'/images/imagename.jpg'"> 'public_path' 在实际的 html 中保持不变
当你想访问 public/images 文件夹中的图像并且你想在不使用 laravel 函数的情况下访问它时, 用法如下:
<img src={{url('/images/photo.type')}} width="" height="" alt=""/>
这很好用。
【讨论】:
只需将您的图片放入公共目录(公共/...文件夹或直接图片)。
公共目录默认由 laravel 应用程序渲染。
假设我将图像存储在public/images/myimage.jpg。
然后在您的 HTML 视图中,页面如下: (image.blade.php)
<img src="{{url('/images/myimage.jpg')}}" alt="Image"/>
【讨论】:
我自己创建了一个资产助手。
首先我在app/config/assets.php中定义了资产类型和路径:
return array(
/*
|--------------------------------------------------------------------------
| Assets paths
|--------------------------------------------------------------------------
|
| Location of all application assets, relative to the public folder,
| may be used together with absolute paths or with URLs.
|
*/
'images' => '/storage/images',
'css' => '/assets/css',
'img' => '/assets/img',
'js' => '/assets/js'
);
然后是实际的Asset 类:
class Asset
{
private static function getUrl($type, $file)
{
return URL::to(Config::get('assets.' . $type) . '/' . $file);
}
public static function css($file)
{
return self::getUrl('css', $file);
}
public static function img($file)
{
return self::getUrl('img', $file);
}
public static function js($file)
{
return self::getUrl('js', $file);
}
}
所以在我看来,我可以这样做来显示图像:
{{ HTML::image(Asset::img('logo.png'), "My logo")) }}
或者像这样实现一个Java脚本:
{{ HTML::script(Asset::js('my_script.js')) }}
【讨论】:
如果您在刀片模板内
{{ URL::to('/') }}/images/stackoverflow.png
【讨论】: