我继承了一个Laravel项目,该项目包含许多刀片文件,刀片文件中包含javascript内部标签。问题是,有很多重复的JS逻辑,所以我想提取JS并创建要包含在刀片中的JS文件?示例:<script src="{{ asset('js/components/file.js')}}"></script>
这是刀片服务器文件的最佳实践,还是应该在实际文件中包含JS?
答案 0 :(得分:1)
首先,您必须指定要在布局中推送脚本的位置。例如,假设layout.blade.php
是您的主要布局文件,并且您想在页脚后插入代码。因此添加
@stack('scripts')
在页脚之后
现在在刀片文件中,使用@push
注入代码。
@push('scripts')
<script>
// your code
</script>
@endpush
检查blade stack以获得更多详细信息。
答案 1 :(得分:1)
只是想带来一些额外的信息,您也可以使用 defer
属性。
在这里使用 Laravel 8,在 webpack.mix.js
mix.js('resources/js/app.js', 'public/js')
.js('resources/js/my-super-amazing-script.js', 'public/js')
在您的主 my-layout.blade.php
中:
...
@yield('javascript')
</body>
然后,在您的特定页面中:
@extend('my-layout.blade.php')
...
@section('javascript')
<script src="{{ mix('js/my-super-amazing-script.js') }}" defer></script>
@endsection
答案 2 :(得分:0)
我建议您维护针对特定页面的javascript的特定部分。
请参考以下示例。
示例template.blade.php
<body>
@yield('content')
@include('_partial.scripts')
@yield('page-script')
@include('_partial.footer')
</body>
然后
@section('page-script')
<script type="text/javascript">
// your custom script
</script>
@stop