10

我正在尝试使用 Laravel 和 twitter 引导程序设置一个基本页面。我安装了 Laravel 并得到了通用的“你在这里”或 w/e 图像,这样看起来很闪亮。对于 twitter 引导程序,我在 /public 文件夹中添加了 /resources/js、/resources/css 和 /resources/img 下的 twitter 引导程序文件。

所以现在我正在尝试为我的视图制作一个模板,其中基本上 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 文档,但我似乎无法弄清楚我做错了什么......有人能指出我正确的方向吗?

4

8 回答 8

22

要使用刀片模板,您必须具有.bladein 文件名,例如在您的情况下它应该是

hello.blade.php

否则,它不会渲染。在Laravel 网站上阅读更多内容。这是我的一个测试项目(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
于 2013-09-22T02:02:44.673 回答
3

在你的laravel/app/views/hello.php

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

有关模板的更多信息可以在文档中找到

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

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

它可以用这个来完成:看到这个

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

让你知道。;)

于 2013-09-22T02:02:55.433 回答
2

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

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

问候,麦克潘

于 2014-04-19T18:26:44.937 回答
2

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

于 2015-06-03T13:23:01.160 回答
1

将@extends() 放在第一行。

于 2014-07-04T13:04:33.903 回答
1

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

于 2015-07-20T09:04:00.913 回答
0

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

于 2016-05-24T10:10:25.947 回答
-1

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

于 2015-11-21T16:01:56.923 回答