我的基本布局包含以下内容:
@section('javascripts')
<script src="<?php echo asset('js/all.js') ?>"></script>
@endsection
在我的孩子模板中,我有以下内容:
@extends('layouts.master')
<!-- some other html code -->
@section('javascripts')
@parent
<!-- some local scripts -->
<script>
$(function() { console.log('test'); });
</script>
@endsection
父母和孩子的javascripts根本没有加载。
然而,以下作品: 基础布局:
<!-- load main scripts -->
<script src="<?php echo asset('js/all.js') ?>"></script>
@yield('javascripts')
儿童模板:
@extends('layouts.master')
<!-- some other html code -->
@section('javascripts')
<!-- some local scripts -->
<script>
$(function() { console.log('test'); });
</script>
@endsection
答案 0 :(得分:0)
我认为你可以更好地使用@stack和@push结构。这看起来像这样
在您的父模板中,您可以添加@stack标记,以便在此处查看您的javascript代码
<head>
<title>My website</title>
@stack('scripts')
</head>
然后在您的子模板中,您将使用@push标记,它将如下所示。
@push('scripts')
<script>
$(function() { console.log('test'); });
</script>
@endpush
这会将您的javascript从子模板推送到父模板的堆栈中。
我在laracasts上找到了一个解释它的主题。 https://laracasts.com/discuss/channels/general-discussion/blade-push-and-stack-are-they-here-to-stay
答案 1 :(得分:0)
您可以使用stacks
,但对于您的问题,您没有正确关闭section
。而不是@endsection
,您必须在基本布局中使用@show
。
@section('javascripts')
<script src="<?php echo asset('js/all.js') ?>"></script>
@show