Я пытаюсь настроить базовую страницу с помощью Larvel и twitter bootstrap. Я установил Laravel и получил общий «вы здесь» или w / e-образ, чтобы он выглядел блестящим. Для twitter bootstrap я добавил в свою / общедоступную папку файлы загрузки twitter в / resources / js, / resources / css и / resources / img.
Итак, теперь я пытаюсь создать шаблон для своих представлений, где в основном загружаются файлы .stss для загрузки twitter в моем главном теге, а скрипты bootstrap.min.js и jquery.js выводятся непосредственно перед моим закрывающим тегом body.
Так вот что я установил:
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, но я не могу понять, что я делаю неправильно. Может кто-нибудь указать мне в правильном направлении?
Чтобы использовать шаблон клинка, вы должны иметь .blade
в имени файла, например, в вашем случае это должно быть
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
на вашем laravel/app/views/hello.php
этот файл должен был быть hello.blade.php
так как вы хотите использовать механизм шаблонов лезвия с ним .. вот и все.
более подробную информацию о шаблонах можно найти в документах
также, со стороны, где вы объявляете скрипты:
<script src="/resources/js/bootstrap.min.js"></script>
это можно сделать с помощью этого: см. это
{{ HTML::script('resources/js/bootstrap.min.js') }}
просто так вы знаете. 😉
Просто получил ту же проблему, что и описанную вначале. Но: все имена файлов шаблонов соответствуют требуемой спецификации с * .blade.php. Также был задан правильный путь «layouts». Результат по-прежнему не был рендерингом лезвия, выход был ограничен значением @extends('layouts.master')
.
Решением было следующее: я использовал сценарий просмотра копии вставки с комментарием <!-- app/views/index.blade.php -->
в первой строке. Удаление этого комментария из шаблона и @extends('layouts.master')
в первую строку моего сценария просмотра вместо этого сделали трюк.
Приветствия, Макпан
Привет, у меня была такая же проблема, и я дважды проверил свой код, оказалось, что я опустил $ для моей переменной, и страница была пустой, но это было с просветом, надеюсь, что вы можете дважды проверить свой код
место @extends () в первой строке.
Я тоже столкнулся с одной и той же проблемой, после чего нашел, оставив пробел или строку до @extends («layouts.master») или любые комментарии, не будет отображаться. @extends ('layouts.master') следует размещать в верхней части экрана.
для меня это было связано с пробелом между скобками: вместо {{$ name}} я использовал {{$ name}}, и это сработало для меня.
Я столкнулся с той же проблемой, и решение состоит в том, что @extends('layouts.master')
должен находиться в первой строке.