我们假设我有两个基于laravel
的页面,我对这两个页面都有不同的脚本文件。现在我正在加载index.blade.php
中的所有脚本。根据目前的实现,所有脚本在两种情况下加载。如何为不同的页面加载不同的脚本文件,并在html之后加载脚本。
答案 0 :(得分:1)
我不熟悉require.js,@ jsxqf在评论中将其作为替代。
我个人拥有yields
我的主版块(一个用于js
,一个用于css
)我正在使用刀片进行调整。在views
中,您也可以这样做。
档案 layout/master.blade.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>title</title>
<link rel="stylesheet" href="style.css">
@yield('css-scripts')
</head>
<body>
@yield('content')
</body>
<script src="script.js"></script>
@yield('js-scripts')
</html>
然后,您的视图将扩展此布局,并将脚本独立放在相应的部分中,如下所示:
档案 myview.blade.php
@extends('layout.master')
@section('content')
// your content...
@stop
@section('js-scripts')
// here, you have control over additionally loaded scripts...
<script src="otherscript.js"></script>
@stop
但看起来require.js可能是这种方法的一个很好的替代方案,直到现在我都不知道。
答案 1 :(得分:0)
您最好的方法是创建一个部分,以在主布局上使用堆栈放置可选脚本
<html>
<head>
<!-- At the end of head -->
@stack('styles')
</head>
<body>
<!-- At the end of body -->
@stack('scripts')
</body>
</html>
在正常的视图下,即您的页面,
@extends('layouts.app')
@push('styles')
<link rel="stylesheet" href="{{ asset('css/page1.css')}}">
@endpush
@section('content')
// page content
@endsection
@push('scripts')
<script src="{{ asset('js/page1.js')}}"></script>
@endpush
这允许您从其他视图向主布局添加其他可选脚本和样式,从而完全安全地在视图中组织样式/脚本