首页 文章

php laravel刀片模板不呈现

提问于
浏览
9

我正在尝试使用Laravel和twitter bootstrap设置基本页面 . 我安装了Laravel并获得了通用的“你在这里”或w / e图像,因此看起来很闪亮 . 对于twitter bootstrap,我在/ resources / js,/ resources / css和/ resources / img下的/ boot文件夹中添加了twitter bootstrap文件 .

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

所以这就是我的设置:

laravel/app/routes.php

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

laravel/app/views/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文档,但我似乎无法弄清楚我做错了什么...有人能指出我正确的方向吗?

8 回答

  • 3

    要使用刀片模板,您必须具有 .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

    在你 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

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

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

    招呼,麦克潘

  • 2

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

  • 1

    将@extends()放在第一行 .

  • 0

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

  • 22

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

  • -1

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

相关问题