dhardtke / assetie
Requires
- php: >=5.3.0
- illuminate/support: 4.1.*
- kriswallsmith/assetic: dev-master
- nitra/php-min: @dev
- patchwork/jsqueeze: dev-master
This package is not auto-updated.
Last update: 2024-09-28 15:51:06 UTC
README
#Assetie
什么是Assetie?
Assetie是我为Laravel 4开发的一个用于管理资产的Laravel包。它使用Kris Wallsmith的出色的Assetic来最小化和压缩资产文件。
这个包仍在开发中,这意味着它处于早期阶段,需要完成大量工作,直到Assetie可以在生产环境中使用!
为什么还需要另一个Laravel 4的资产管理包?
我尝试过多种产品,但都不是很满意。
我想要的只是一个易于使用、简洁且快速的包。
安装
-
通过将Assetie添加到composer.json文件的"require"键来要求Assetie
"dhardtke/assetie": "dev-master"
运行"composer update"来更新所有依赖并安装Assetie。
-
通过将其添加到应用的配置中,将Assetie包含到您的Laravel项目中
在 app/config/app.php
- 将
'Dhardtke\Assetie\AssetieServiceProvider'
添加到'providers'
数组中 - 将
'Collection' => 'Dhardtke\Assetie\Facades\Collection'
添加到aliases
数组中
- 将
就这样!现在您可以开始管理您的资产了。
配置
在您的Laravel安装目录中,通过命令行运行php artisan config:publish dhardtke/assetie
以发布Assetie的配置文件。
然后您可以根据以下方式编辑app/config/packages/dhardtke/assetie/config.php
过滤器
'filters' => array(
'.min.js' => array(
),
'.min.css' => array(
new \Assetic\Filter\CssRewriteFilter,
$uglifyCss,
new \Assetic\Filter\PhpCssEmbedFilter
),
'.js' => array(
$JSqueeze
),
'.less' => array(
$lessFilter,
$uglifyCss
),
'.css' => array(
new \Assetic\Filter\CssRewriteFilter,
$uglifyCss,
new \Assetic\Filter\PhpCssEmbedFilter
),
)
将特定的Assetic过滤器添加到某些扩展名。有关更多详细信息,请参阅适当的Assetic过滤器概述。
目录
'directories' => array(
'javascripts' => 'assets/javascripts',
'stylesheets' => 'assets/stylesheets'
),
这些是Assetie将查找其JavaScript和CSS样式表文件的目录。如果您想更改它们,可以在这里进行。 这些路径相对于应用路径。
构建路径
'build_path' => 'builds',
如果您想更改Assetie将存储其构建的目录,可以在这里进行更改。默认情况下,它设置为app_public() . /builds,但如果您想,可以在这里更改它。
此路径始终相对于Laravel的公共路径
使用
在您的routes.php
旁边创建一个名为collections.php
的文件。该文件将由Assetie自动包含并包含您的资产集合。
定义第一个集合
要创建自己的第一个集合,您必须在collections.php内部使用以下代码
Collection::addCollection("base", function($collection) {
$collection->add([
"style.css",
"base.js"
]);
});
现在您可以通过在模板(通常在<head>
中)中调用此函数来开始使用此集合
{{ Collection::stylesheets("base"}}
{{ Collection::javascripts("base"}}
定义一个使用基本集合的集合
如果您现在想要一个新的集合,它继承基本集合,可以这样做
Collection::addCollection("portal", function($collection) {
$collection->includeCollection("base")
->add("portal.css");
});