2013-09-22 25 views
9

Laravelとtwitterブートストラップを使用して基本ページをセットアップしようとしています。私はLaravelをインストールし、一般的な "あなたはここにいる"またはw/eイメージを持っているので光沢があります。 twitterのブートストラップについては、/ public/js、/ resources/css、/ resources/imgにtwitterブートストラップファイルを/ publicフォルダに追加しました。php laravelブレードテンプレートがレンダリングされない

これで私のビューのテンプレートを作ろうとしています。基本的には、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> 

しかし、ブレードテンプレートはレンダリングされていないようです。これは私が得た出力です:

これは、ページ上とビューソース上での見方です。 HTMLタグまたはスクリプトは含まれません。何もない。私は何か基本的なものを見逃しているに違いない、そして私はLaravelのドキュメントを見てみることを試みたが、私が間違っていることを理解できないようだ。誰かが正しい方向に向けることができるだろうか?

答えて

21

例えば、あなたの場合には、それはそれ以外の場合は

hello.blade.php 

する必要があり、あなたはファイル名に.bladeを持っている必要があり、ブレードのテンプレートを使用するには、それは表示されません。 Laravel Siteを詳しく読んでください。ここ は、あなたがタイプミス@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。実際に私はそれを試みましたが、まだそれをやっていました。当時は 'layouts'の代わりに' @extends( 'layouts.master') 'layout'をタイプミスしたという問題もあったと思います。 – slinkhi

+0

@mysql_noobie_xxxxはい、それは' layouts'でなければなりません。 –

3

のようなものである必要があり、私のテストプロジェクト(index.blade.php)のいずれかから一例である、あなたのファイルがされている必要がありますlaravel/app/views/hello.php

hello.blade.phpあなたはそれを持つブレードテンプレートエンジンを使用したいからです。テンプレート上の

より多くの情報もdocs

で見つけることができます、あなたはスクリプトを宣言部分に:this

{{ HTML::script('resources/js/bootstrap.min.js') }} 
を参照してください。

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

それは、これを使用して行うことができます

ちょうどあなたが知っている。 ;)

+0

こんにちは、スクリプトについてのヒントを教えていただきありがとうございます。これは私にとっては新しいものなので、勉強するにはかなりのものがあります!私は彼に解決策を与えたので、シェイクは即時の問題に答えるために引き分けにわずかに速かったが、あなたにも+1した。 – slinkhi

+0

ええ。心配ない。また今度。 XP。ありがとう。 – reikyoushin

2

最初に説明したのと同じ問題が発生しました。しかし、すべてのテンプレートのファイル名は* .blade.phpで必要な仕様と一致します。また、 'layouts'パス名が正しく設定されています。結果は依然としてブレードレンダリングではなく、出力は@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}}の{{$ name}}を使用していました。

関連する問題