是否可以在每个刀片模板中包含一个js文件,除了一个?

时间:2016-09-15 03:39:11

标签: laravel laravel-5

我有一个主模板。所有其他刀片文件都扩展了主服务器。我有js文件,我希望包含在每个刀片文件中,除了主页(welcome.blade.php)。我可以在主人中包含js文件,但主页也将继承我不想要的内容。我能做的另一件事是手动将js文件添加到所有其他刀片文件中,因为我必须为每个文件执行此操作。 可以做的另一件事是通过javascript获取URL,如果它是主页的URL,它不添加js文件,否则,它会添加js文件。

除了welcome.blade.php之外,有没有简单的方法在每个刀片文件中包含该js文件?

2 个答案:

答案 0 :(得分:2)

如果您不想使用js方式,可以在mater模板中执行此操作:

<script src="@yield('script_file', 'path/to/script.js')"></script>

并在welcome.blade.php或您要排除脚本文件的任何文件中执行:

@section('script_file', '')

这实际上会将脚本的src设置为空;没有脚本

答案 1 :(得分:2)

  

我可以在主人中加入js文件,但主页也将继承我不想要的

除非你告诉它不要。概念证明:

master.blade.php

<head>
    ...
    @section(head.js)
    <script type="text/javascript" src="{{ asset('js/file1.js') }}"></script>
    <script type="text/javascript" src="{{ asset('js/file2.js') }}"></script>
    <script type="text/javascript" src="{{ asset('js/file3.js') }}"></script>
    <script type="text/javascript" src="{{ asset('js/no-home.js') }}"></script>
    @show
</head>

welcome.blade.php (不要继承no-home.js)

@section(head.js)
    <script type="text/javascript" src="{{ asset('js/file1.js') }}"></script>
    <script type="text/javascript" src="{{ asset('js/file2.js') }}"></script>
    <script type="text/javascript" src="{{ asset('js/file3.js') }}"></script>
@stop

another-template.blade.php (继承所有内容并添加另一个)

@section(head.js)
    @parent
    <script type="text/javascript" src="{{ asset('js/file4.js') }}"></script>
@stop