Child 部分未将样式注入其 parent blade 布局

Child partial not injecting styles into its parent blade layout

我有一个部分 child 视图需要一些自定义 js 和样式。这个 child 是整个应用程序中唯一使用它的视图。它很复杂,所以 JS 被分解成它自己的文件。

我已经尝试 'inject' 将脚本和样式添加到 parent 布局 according to the docs 中,但它似乎不起作用。我厌倦了这些部分中 @parent@@parent 的组合。我尝试更改主要布局,@yield('scripts') @yield('styles')@section('scripts')@show.

我错过了什么?这可能吗?

main.blade.php(为简洁起见缩短)

<head>
    @include('apps.includes.styles')

    @yield('styles')//a place for custom style
</head>
<body>
@yield('content')

@include('apps.includes.scripts')
@yield('scripts') //a place for custom scripts
</body>

create.blade.php

@extends('layouts.main')
@section('styles')@endsection
@section('scripts')@endsection
@section('content')
    <div>
      @include('partials._toolbar')
    </div>
@endsection

_toolbar.blade.php

@section('styles')
    @parent
    <script src="{{asset('assets/css/mystyle.css')}}"></script>
@endsection

@section('scripts')
    @parent
    <script src="{{asset('assets/js/myjs.js')}}"></script>
@endsection

<section>
// my toolbar html code
</section>

您尝试执行的操作是不可能的。您只能通过扩展布局来填充部分,而不是通过包含它。相反,使用 stack 作为样式:

toolbar.blade.php

@push('styles')
    <script src="{{asset('assets/css/mystyle.css')}}"></script>
@endpush

main.blade.php

<head>
    @include('apps.includes.styles')

    @stack('styles')
</head>

您可以在 official documentation 中阅读有关堆栈的更多信息。