在laravel中为不同视图加载不同的css / js

时间:2018-03-20 23:23:40

标签: php css laravel

我是laravel的新手。我用laravel 5.6。我想在一个页面(视图)中使用Summernote WYSIWYG编辑器。 Summernote需要一个css和一个js文件。我想只在这个视图中加载这些文件。我怎么做? 这是我试图这样做的方式。
  master.blade.php 文件。

<html>

    @include('header')

    <body>

        @yield('content')

        @include('footer')

    </body>
</html>

editor.blade.php 档案

@extends('master')

    @section('content')
        --- Summernote editor goes here---
    @endsection

    @section('imports')
    <link href="http://netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css" rel="stylesheet">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
    <script src="https://netdna.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.js"></script>

    <!-- include summernote css/js-->
    <link href="http://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.9/summernote.css" rel="stylesheet">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.9/summernote.js"></script>

    <script>
        $(document).ready(function() {
            $('.summernote').summernote();
        });
    </script>
    @endsection

header.blade.php

<head>
    --- other css and file links ---

    @yield('imports')
</head>

正如您所见,editor.blade.php文件扩展了master.blade文件。在master文件中,我包含了header.blade文件,其中包含所有css链接。所以我在header.blade文件中产生了Summernote js / css。但是当它加载到浏览器时,header.blade文件中的产生内容位于<body>标记的开头(应该位于<head>标记的一边)。
我可以直接在headr.blade.php文件中添加这些文件。但我想知道是否有办法以这种方式做到这一点。

1 个答案:

答案 0 :(得分:1)

我通常以这种方式执行此操作,您不会在master.blade中使用include()刀片,因为它会调用所有页面,只是屈服然后在另一页中只是注入到已生成的部分

master.blade.js

<html>

    @yield('header')

    <body>

        @yield('content')

        @yield('footer')

    </body>
</html>

header.blade.php

 @extends('master')

    @section('header')
            --- CSS here ---
    @endsection

    @section('content')
        --- content here ---
    @endsection

    @section('footer')
        --- scripts here ---
    @endsection