如何仅加载一次资产 laravel 5.3?

How Load asset only once laravel 5.3?

如何只加载一次资产。如果我打开仪表板,将加载所有资产,然后我打开其他页面,而不是第二次加载资产..

如何在blade模板中只加载一次资源?

例如:

template.blade.php

@yield('css') 
@yield('js')

dashboard.blade.php

@section('css')
//some code here
@endsection

group.blade.php

@section('css')
//some code here
@endsection

有什么帮助吗? 谢谢

为什么要用@yield 加载资产?只需将其加载到您的布局中即可。 例如 app.blade.php 位于 layouts 文件夹中。

app.blade.php

<html>
<head>
<link rel="stylesheets" href="{{asset('css/style.css')}}"/>
<title>title goes here</title>
</head>
<body>
@yield('content')
<script src="{{asset('js/jquery.js')}}"></script>
</body>
</html>

然后在任何视图(例如仪表板)上加载布局

dashboard.blade.php

@extends('layouts.app) //it loads all template data  from layouts(app.blade.php)
@section('content')
content for dashboard
@endsection

HTTP 协议不是这样工作的。 HTTP 协议是无状态的,这意味着它不会 记住 用户在访问 group.

之前访问了 dashboard

您唯一可以保证的是,当用户访问仪表板时,仪表板的 CSS 将被缓存,因此对它们的后续请求将从缓存而不是网络服务器加载它们。

但是,您必须假定用户可以首先访问 group,因此 all 需要 CSS 群组必须包含在群组模板中,即使这意味着您将为每个页面复制一些 CSS。

如果您真的只想加载每个资产一次,那么您应该使用 JavaScript 库,例如 jquery mobile 来指定通过 AJAX 加载的不同部分。然而,如何以及为什么是一个太宽泛的问题,无法在此处涵盖。