如何使用Laravel刀片模板引擎的 @include
加载特定于页面的资源?
以下是 Master 布局的内容( master.blade.php
):
<head>
@section('styles')
{{-- Some Master Styles --}}
@show
</head>
<body>
{{-- Header --}}
@section('header')
@include('header')
@show
{{-- Content --}}
@section('content')
{{-- Content for page is extending this view --}}
@show
{{-- Footer --}}
@section('footer')
@include('footer')
@show
</body>
在给定的页面中,我以这种方式使用我的主模板:
@extends('master')
@section('styles')
@parent
{{-- Page Stylesheet --}}
@endsection
上面的方法是我尝试将我的页面特定样式加载到<head>
部分。
它无法按预期正常工作。
我想使用相同的方法在我的页脚中加载其他页面特定的资源;我怎么能有效地做到这一点?
答案 0 :(得分:0)
你不需要做
@extends('master')
@section('styles')
@parent
{{-- Page Stylesheet --}}
@endsection
在您的相应页面中,以便加载特定于页面的样式表。
您应该为 master.blade.php
文件加载特定于页面的样式表,以便保持代码干燥。
为此,你要喊出这些页面的路线或预期的网址格式,然后是要加载的相应样式表。
您可以在 master.blade.php
文件中以这种方式执行此操作:
@section('styles')
@if(Request::is('transactions/generate-invoice'))
@include('generate-invoice-css')
@elseif(Request::is('transactions/users'))
@include('users-css')
@endif
@show
generate-invoice-css.blade.php
包含您要为 yoursite.com/transactions/generate-invoice
和 {{1>访问的网页内容加载的样式表<}> , users-css.blade.php
。
对于给定的模式,如: yoursite.com/transactions/users
下的页面的相同样式表,您可以这样做:
transactions
使用通配符 @if(Request::is('transactions*'))
。
要将给定资源加载到网页的*
部分以外的位置,只需使用相同的方法并根据需要进行调整。
要使用 <head>
中的 @include()
加载特定于页面的资源,请使用此方法(在 {中{1}} 文件):
master.blade.php
其中 master.blade.php
应包含您为满足您的要求而加载的相应资源的条件,如下所示:
@section('styles')
@include('styles')
@show
作为 styles.blade.php
的内容。