2013-09-22 56 views
9

我正在尝试使用Laravel和twitter bootstrap设置一个基本页面。我安装了Laravel并获得了通用的“你在这里”或w/e图像,看起来很有光泽。对于twitter bootstrap,我在/ public文件夹中添加了/ boot/resources/js,/ resources/css和/ resources/img下的twitter引导文件。php laravel blade template not rendering

因此,现在我试图为我的视图制作一个模板,其中基本上twitter引导程序.css文件输出在我的head标记中,并且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/app/views/layouts/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文档,但我似乎无法弄清楚我做错了什么。有人能指引我朝着正确的方向吗?

回答

21

要使用刀模板,您必须在文件名中.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

AHA。其实我尝试过,但它仍然在做。我认为这个问题也是,当时我还拼写了'@extends('layouts.master')'放置'layout'而不是'layouts' – slinkhi

+0

@mysql_noobie_xxxx,是的它应该是'layouts'。 –

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') }} 

只是你知道的。 ;)

+0

嘿谢谢关于脚本的提示包括;这对我来说都是新的,所以我有很多东西要学习!谢赫回答当前问题的抽签要稍微快一点,所以我给了他解决方案,但是+1也给你:) – slinkhi

+0

是的。别担心。下次吧。 XP。谢谢。 – reikyoushin

2

刚刚得到了与最初描述相同的问题。但是:所有模板文件名都与* .blade.php所需的规格匹配。此外,“布局”路径名设置正确。结果仍然没有刀片渲染,输出仅限于@extends('layouts.master')

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

映入眼帘, McPan

1

地方@extends()中的第一行。

+2

当您为您的意图添加说明时,对于OP和其他访问者来说,这将会更有帮助。谢谢。 – reporter

2

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

1

我也面临同样的问题,然后我发现,在@extends('layouts.master')或任何注释之前留下一个空格或一行不会呈现。 @extends('layouts.master')应该放在最上面。

-1

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

0

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