刀片模板未正确显示

Posted

技术标签:

【中文标题】刀片模板未正确显示【英文标题】:blade templating not displaying properly 【发布时间】:2014-07-04 07:04:55 【问题描述】:

我创建了一个刀片模板,我想根据调用它的页面添加 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')

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

【问题讨论】:

如果您使用刀片模板,您的文件应具有扩展名:.blade.php 【参考方案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>

【讨论】:

标题是另一个不同的文件 抱歉,我必须重新阅读整篇文章才有意义。我试试看

以上是关于刀片模板未正确显示的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 4 控制器模板/刀片 - 正确的方法? [关闭]

Laravel 刀片模板不使用 slug 渲染

mailchimp 电子邮件在 gmail 中未正确显示

Django 模板 - 列表未正确呈现

如何使用 vuejs 在 laravel 刀片中显示验证错误

Laravel 无法扩展默认刀片模板