如何使用HTML::image()
进行内联样式background-image
,例如此html标记:
这一行是我的main.blade.php文件,这是我模板的主要角色。
<div style="height: 45px;background-image:url('../public/images/header_pattern2.png');border-radius: 5px;position:relative">
在main.blade.php我的页面查看正确的模板。但是在重定向之后,例如login.blade.php
图像没有显示。但切换到索引后我没有问题。
在公共目录中,我有images
,js
,css
个文件夹,我的公众是:
'public' => __DIR__.'/..',
我可以删除公共目录。如何将background-image:url('../public/images/header_pattern2.png');
转换为刀片HTML::image()
代码?
答案 0 :(得分:6)
你可以试试这个:
<div style="height: 45px;background-image:url('{{ asset('images/header_pattern2.png') }}');border-radius: 5px;position:relative">
<强>更新强>
实际上,HTML::image()
会生成<img />
代码并且您正在使用div,如果您想使用HTML::div()
,则可以创建custom macro。
更新:我已创建此custom macro
:
/**
* Param $attr : An array of styles
* Param $html : HTML content for div
* Returns HTML DIV
*/
HTML::macro('divWithBG', function($attr = array(), $html = ''){
$style = 'style = ';
foreach ($attr as $key => $value) {
if($key == 'background-image') $style .= $key.':url(\'' . $value .'\');';
else $style .= $key . ':' . $value .';';
}
return "<div $style >$html</div>";
});
您可以在blade view
中使用它作为:
{{ HTML::divWithBG(array('background-image' => asset('images/8_big.jpg'), 'height' => '45px', 'border-radius'=>'5px', 'position'=>'relative' )) }}
输出:
<div style="background-image:url('http://blog.dev/images/8_big.jpg');height:45px;border-radius:5px;position:relative;"></div>
渲染输出:
答案 1 :(得分:0)
使用以下功能解决此问题。这是假设图像存在。
public function inline($path)
{
$filetype = File::type( $path );
$response = Response( File::get($path), 200 );
$response->header('Content-Type', $filetype);
return $response;
}
答案 2 :(得分:0)
我尝试了这个,并且奏效了
background: url('{{asset('uploads/avatars/'.$employee->avatar)}}')