php laravel刀片模板不呈现

时间:2013-09-22 01:58:09

标签: php twitter-bootstrap laravel

我正在尝试使用Laravel和twitter bootstrap设置基本页面。我安装了Laravel并得到了通用的#34;你在这里"或w / e图像,使其看起来有光泽。对于twitter bootstrap,我在/ resources / js,/ resources / css和/ resources / img下的/ boot文件夹中添加了twitter bootstrap文件。

所以现在我正在尝试为我的视图制作一个模板,基本上我的head标签中输出了twitter bootstrap .css文件,并且之前输出了bootstrap.min.js和jquery.js脚本包含我的关闭身体标签。

所以这就是我的设置:

laravel /应用/ routes.php文件

Route::get('/', function()
{
        return View::make('hello');
});

laravel /应用/视图/ hello.php

@extends('layouts.master')

@section('content')
    <p>This is my body content.</p>
@stop

laravel /应用/视图/布局/ master.blade.php

<html>
  <head>
    @section('head')
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <link href="/resources/css/bootstrap.min.css" rel="stylesheet" media="screen">
    @show
  </head>
  <body>
    <div class="container">
      @yield('content')
    </div>

  @section('footer_scripts')
    <script src="http://code.jquery.com/jquery.js"></script>
    <script src="/resources/js/bootstrap.min.js"></script>
  @show
  </body>
</html>

但是刀片模板似乎没有渲染。这是我得到的输出:

@extends('layouts.master') @section('content')
This is my body content.

@stop

它在页面上以及在视图源中的外观。没有html标签或脚本包括;没有。我必须遗漏一些基本的东西,并且我已经尝试过浏览Laravel文档,但我似乎无法弄清楚我做错了什么。有人能指出我正确的方向吗?

8 个答案:

答案 0 :(得分:22)

要使用刀片模板,您必须在文件名中包含.blade,例如在您的情况下应该

hello.blade.php

否则,它将不会渲染。详细了解Laravel Site。 这是我的一个测试项目(index.blade.php)中的一个示例,因为你有一个拼写错误@extends('layout.master')它应该是这样的

@extends('layouts.master')

@section('content')
This is a sample of laravel 4 using blade template engine.
This is home page using HomeController and home.blade template.
@stop

答案 1 :(得分:3)

laravel/app/views/hello.php

该文件应该是hello.blade.php,因为你想使用它的刀片模板引擎......就是这样。

有关模板的更多信息,请参阅docs

另外,在您声明脚本的部分:

<script src="/resources/js/bootstrap.min.js"></script>

可以使用此方法完成:请参阅this

{{ HTML::script('resources/js/bootstrap.min.js') }} 

就这样你知道。 ;)

答案 2 :(得分:2)

刚刚遇到了与最初描述的问题相同的问题。但是:所有模板文件名都与* .blade.php匹配所需的规范。 'layouts'路径名也设置正确。结果仍然没有刀片渲染,输出限制为@extends('layouts.master')

解决方案是:我在第一行使用了带有<!-- app/views/index.blade.php -->注释的复制粘贴视图脚本。从模板中删除此注释并将@extends('layouts.master')放在我的视图脚本的第一行而不是诀窍。

电贺,  麦克潘

答案 3 :(得分:2)

你有同样的问题,我仔细检查了我的代码,结果我省略了$ for我的变量,页面空白无法呈现,但这是与流明,希望你也可以仔细检查你的代码

答案 4 :(得分:1)

将@extends()放在第一行。

答案 5 :(得分:1)

我也遇到了同样的问题,然后我发现,在@extends(&#39; layouts.master&#39;)之前留下空格或一行,或者任何评论都不会呈现。 @extends(&#39; layouts.master&#39;)应放在最顶层。

答案 6 :(得分:0)

对我而言,这是由于括号之间的空格:而不是{{$ name}} 我使用了{{$ name}},它对我有用。

答案 7 :(得分:-1)

我面临同样的问题,解决方案是@extends('layouts.master')必须在第一行。