laravel @include 和 <head> 中的 @section

mar*_*kus 5 laravel laravel-5

我有一个简单的主布局:

<!DOCTYPE html>
<html>
<head>
    <title>Title</title>
    @yield('style')
</head>

<body>
@include('layouts.frontend.partials.slider')
@yield('javascript')
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

布局.frontend.partials.slider

@section('style')
    <link rel="stylesheet" type="text/css" href="mystyle.css">
@append

@section('javascript')
<script></script>
@append

<div class="swiper-container">
    <div class="swiper-wrapper">
        <div class="swiper-slide" data-swiper-autoplay="1000">Slide 1</div>

        <div class="swiper-slide" data-swiper-autoplay="1000">Slide 2</div>

        <div class="swiper-slide" data-swiper-autoplay="1000">Slide 3</div>
    </div>

    <div class="swiper-pagination">&nbsp;</div>

    <div class="swiper-button-prev">&nbsp;</div>

    <div class="swiper-button-next">&nbsp;</div>
</div>
Run Code Online (Sandbox Code Playgroud)

当包含文件中工作正常时,将@section('style')被忽略@section('javascript')...我已将两个文件(主文件和包含文件)减少到最小,并交换了样式和 javascript 的位置,没有任何区别

似乎有效的方法是将位置从身体更改@yield('style')为身体,例如:

<!DOCTYPE html>
<html>
<head>
    <title>Title of the document</title>

</head>

<body>
@include('layouts.frontend.partials.slider')
@yield('javascript')
@yield('style')
</body>
Run Code Online (Sandbox Code Playgroud)

也许不允许包含@section在包含文件中?

我想要归档的是拥有多个部分包含及其自己的 css 和 javascript 包含

谢谢

Joã*_*ani 5

这是另一种方法,它很好,因为你有一定的灵活性。

您创建一个主模板,放置您的主要文件

master.blade.php

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <link rel="stylesheet" href="">

    @section('css')
        <!-- some master css here -->
    @show

</head>
<body>
    @section('navbar')
        @include('common.navbar')
    @show

    @yield('content')        

    @include('common.footer')

    @section('js')
        <!-- some js here -->
    @show   
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

其他子项扩展了主项,您将拥有所有布局并可以自定义您想要的内容:

儿童刀片

@extends('master')

@section('css')
    @parent
    <!-- more css -->
@endsection

@section('navbar')
    @parent
@endsection

@section('content')

<!-- Main content goes here -->

@endsection

@section('js')
    <!-- replace js and add my own -->
    <!-- others js -->
@endsection
Run Code Online (Sandbox Code Playgroud)