orchestra / asset
Orchestra平台资产组件
Requires
- php: ^7.3 || ^8.0
- laravie/html: ^7.1
- orchestra/contracts: ^6.0
- orchestra/support-facades: ^6.0
Requires (Dev)
- illuminate/filesystem: ^8.0
- orchestra/testbench: ^6.15
Suggests
- illuminate/filesystem: Allow using orchestra/asset component outside of Laravel app (^8.0).
- orchestra/html: Allow using orchestra/asset with HTML component (^6.0).
This package is auto-updated.
Last update: 2024-08-27 19:43:09 UTC
README
Asset组件是Laravel 3 Asset的移植,用于Orchestra平台。组件的主要功能是允许动态处理资产声明,并可以从容器中直接解析资产依赖。但此组件并不旨在成为Laravel的资产管道包,对于此类用途,我们建议使用Grunt或Gulp。
目录
版本兼容性
安装
要通过composer安装,请在终端中运行以下命令
composer require "orchestra/asset"
配置
在config/app.php
中添加以下服务提供者。
'providers' => [ // ... Orchestra\Asset\AssetServiceProvider::class, Collective\Html\HtmlServiceProvider::class, ],
别名
您可能需要在config/app.php
中添加Orchestra\Support\Facades\Asset
到类别名
'aliases' => [ // ... 'Asset' => Orchestra\Support\Facades\Asset::class, ],
使用
注册资产
Asset类提供了一个简单的方式来管理应用程序使用的CSS和JavaScript。要注册一个资产,只需在Asset类上调用add方法
注册资产
Asset::add('jquery', 'js/jquery.js');
add方法接受三个参数。第一个是资产的名称,第二个是相对于public目录的资产路径,第三个是资产依赖列表(稍后详细介绍)。请注意,我们没有告诉方法我们正在注册JavaScript还是CSS。add方法将使用文件扩展名来确定我们正在注册的文件类型。
导出资产
当您准备好在视图中放置已注册资产的链接时,您可以使用styles或scripts方法
将资产导出到视图中
<head> {!! Asset::styles() !!} {!! Asset::scripts() !!} </head>
上面的代码也可以简化为
<head> {!! Asset::show() !!} </head>
资产依赖
有时您可能需要指定一个资产有依赖关系。这意味着资产需要在您的视图中声明其他资产之后才能声明。在Laravel中管理资产依赖关系非常简单。还记得您为资产分配的“名称”吗?您可以将它们作为add方法的第三个参数传递来声明依赖关系
注册一个有依赖关系的包
Asset::add('jquery-ui', 'js/jquery-ui.js', 'jquery');
在这个例子中,我们注册了jquery-ui资产,并指定它依赖于jquery资产。现在,当您在视图中放置资产链接时,jQuery资产将始终在jQuery UI资产之前声明。需要声明多个依赖项?没问题
注册一个有多个依赖关系的资产
Asset::add('jquery-ui', 'js/jquery-ui.js', ['first', 'second']);
资产容器
为了提高响应时间,通常会将JavaScript放在HTML文档的底部。但是,如果您还需要在文档的头部放置一些资产怎么办?没问题。Asset类提供了一个简单的方式来管理资产容器。只需在Asset类上调用container方法并指定容器名称。一旦您有一个容器实例,您就可以使用相同的语法将任何您想要的资产添加到容器中
检索资产容器的实例
Asset::container('footer')->add('example', 'js/example.js');
从给定容器中导出这些资产
{!! Asset::container('footer')->scripts() !!}
资产版本控制
提高响应时间的另一种方法是利用浏览器缓存,虽然实现方式有很多种,我们选择最后修改时间作为对Asset进行版本控制的方法。
Asset::container()->addVersioning(); // or alternatively Asset::addVersioning();
注意:这仅适用于本地资产。
您可以通过使用以下方法来移除添加版本号:
Asset::container()->removeVersioning(); // or alternatively Asset::removeVersioning();