刀片模板不能正常显示

时间:2014-05-15 17:24:58

标签: laravel laravel-4 blade

我有一个我创建的刀片模板,我想根据它调用的页面添加css文件。 下面的文件是名为._head.php的主文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="shortcut icon" href="">

    <title>{{ 'Login' }}</title>

    <!--Core CSS -->
    {{ HTML::style('asset/bs3/css/bootstrap.min.css') }}
    {{ HTML::style('asset/css/bootstrap-reset.css') }}        
    {{ HTML::style('asset/assets/font-awesome/css/font-awesome.css') }}    
    {{ HTML::style('asset/bs3/css/bootstrap.min.css') }}

    <!-- Custom styles for this template -->

   @yield('addcss')

    <!-- Ends Here -->

    {{ HTML::style('asset/css/style.css') }}
    {{ HTML::style( 'asset/css/style-responsive.css') }}


    <!-- Just for debugging purposes. Don't actually copy this line! -->
    <!--[if lt IE 9]>{{ HTML::script('asset/js/ie8/ie8-responsive-file-warning.js') }}<![endif]-->

    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
    <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
    <![endif]-->
</head>

我尝试使用

将css添加到上面的模板中
@extends('layouts._head')
    @section('addcss')
    {{ HTML::style('asset/assets/bootstrap-datepicker/css/datepicker.css') }}
    {{ HTML::style('asset/assets/bootstrap-daterangepicker/daterangepicker-bs3.css') }}
    {{ HTML::style('asset/assets/bootstrap-datetimepicker/css/datetimepicker.css')  }}
    @stop

@include('layouts._header')

但是,在显示_header模板的内容后,@ section和_head的内容现在显示在body标签内。我在这做错了什么?提前谢谢。

1 个答案:

答案 0 :(得分:1)

你不能在“扩展”的同一个文件中“包含”某些东西而不将其包装在一个部分中。你应该这样做:

@extends('layouts._head')

@section('addcss')
{{ HTML::style('asset/assets/bootstrap-datepicker/css/datepicker.css') }}
{{ HTML::style('asset/assets/bootstrap-daterangepicker/daterangepicker-bs3.css') }}
{{ HTML::style('asset/assets/bootstrap-datetimepicker/css/datetimepicker.css')  }}
@stop

@section('header')
    @include('layouts._header')
@stop

然后在你的.heads文件中将'header'的产量放在最底部(或任何你想要的地方)

    ....
   @yield('header')
</html>

或者如果文件在所有视图中保持不变 - 只需在.heads中执行此操作

    ....
   @include('layouts._header')
</html>