Как я могу включить js файлы, соответствующие для рендеринга файлов в шаблоне лезвия laravel? - PullRequest
0 голосов
/ 29 августа 2018

В моем приложении Laravel у меня есть app.blade.php со следующим кодом

<html>
    <body>
        <div>
            @yield('content')
        </div>
        <script src="{{ asset('jquery.min.js') }}" ></script>
        <script src="{{ asset('bootstrap.min.js') }}" ></script>
    </body>
</html>

У меня есть несколько страниц, таких как page1, page2 и т. Д., И каждая страница отображается как page1.blade.php и т. Д., И эти страницы имеют отдельные файлы javascript, такие как page1.js, page2.js.

page1.js следует включать только с page1.blade.php и то же самое для page2.js. Как я могу включить файлы js для соответствующих файлов blade-серверов?

Мой page1.blade.php является

@extends('layouts.app')

@section('content')
<section class="content-header">
  <h1>
    Page 1
  </h1>

</section>
@endsection

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Вы можете использовать метод @stack, который поставляется после версий 5.1. Для деталей: https://laravel.com/docs/5.7/blade#stacks

0 голосов
/ 29 августа 2018

app.blade.php

<html>
    <body>
        <div>
            @yield('content')
        </div>
        <script src="{{ asset('jquery.min.js') }}" ></script>
        <script src="{{ asset('bootstrap.min.js') }}" ></script>
        @yield('script')
    </body>
</html>

и page1.blade.php

@extends('layouts.app')

@section('content')
<section class="content-header">
  <h1>
    Page 1
  </h1>

</section>
@endsection

@section('script')
  <script src="{{ asset('page1.js') }}" ></script>
@endsection
...