lightgear/asset

此软件包最新版本(2.0.0)没有可用的许可信息。

Laravel 4 的简单资产管理

2.0.0 2013-12-20 09:35 UTC

This package is not auto-updated.

Last update: 2024-09-10 00:31:06 UTC


README

由于现在有更好的处理资源的方式,该项目已被弃用。
我已切换到 Gulp.js 并不会再回退。
此存储库将被保留,以防有人在生产中使用它。

Laravel 4 的简单且有效的资源管理

概述

Lightgear/Asset 软件包旨在简化基于 Laravel 4 的应用程序的基本资源的创建和维护。

特性

  • 支持的资源类型:"less", "css"" 和 "javascript" 文件。我并不打算添加对其他类型如 CoffeeScript 的支持,仅仅因为我想要尽可能保持软件包的体积最小。
  • 合并和压缩(两种操作的任何组合)都完全支持
  • 提供简单但有效的 缓存 支持。这避免了在每个请求中生成资源。需要在配置中打开缓存(因为你可能只想在生产中这样做)。
  • 资源组

安装

通过 Laravel 4 软件包安装器

php artisan package:install lightgear/asset

手动

在你的 composer.json 中 require

"lightgear/asset": "1.1"

然后运行

composer update

然后注册服务提供者

'Lightgear\Asset\AssetServiceProvider'

以及在 app/config/app.php 中可选的别名

'Asset' => 'Lightgear\Asset\Facades\Asset'

使用

发布配置

php artisan config:publish lightgear/asset

这将创建 app/config/packages/lightgear/asset/config.php 文件。

最后创建配置文件中指定的 "public_dir" 目录,并给予它完全的写入权限。

使用方法

您只需使用 registerStyles()registerScripts() 方法之一注册您的资源。重要:资源需要在始终加载的文件中注册(例如,在一个软件包的 ServiceProvider 中)。例如,在您的服务提供者中注册软件包资源,您可以使用如下代码:

/**
     * Register the service provider.
     *
     * @return void
     */
    public function register()
    {
        $styles = array(
            'src/assets/styles',
            'src/assets/pure/pure/pure-min.css'
        );

        $asset = $this->app->make('asset');

        // register styles of a vendor package and assign them
        // to the default "general" group
        $asset->registerStyles($styles, 'vendor/package');

        // register styles of a vendor package and assign them
        // to the "frontend" group
        $asset->registerStyles($styles, 'vendor/package', 'frontend');

        // the same goes with scripts for whom you would use for example
        $asset->registerScripts(array('src/scripts')), 'vendor/package');
    }

或者,您可以使用以下代码注册位于 app/assets 的资源

Asset::registerStyles(array(
        'css/shared.less'
    )
);
or
Asset::registerScripts(array(
        'js/shared.js'
    )
);

如您在示例中所见,文件和目录都可以注册。值得注意的是,目录是递归添加的

配置

一些配置选项允许您自定义资源的处理方式。请参阅 src/config/config.php 以获取详细信息。

模板化

您可以使用以下方式在(blade)模板中打印资源:

// prints all the registered styles
{{ Asset::styles() }}

// prints only the "frontend" group
{{ Asset::styles('frontend') }}

// prints the "frontend" and "mygroup" groups
{{ Asset::styles(array('frontend', 'mygroup')) }}

并且相同的语法也用于脚本

{{ Asset::scripts() }}

Artisan 命令

该软件包包含 2 个命令

php artisan asset:clean

该命令删除所有已发布和缓存的资源

php artisan asset:generate

该命令生成并发布已注册的资源

权限

如果您在运行上述命令时遇到权限问题,那是因为运行 artisan 的用户与通过 web 服务器(例如 www-data)生成资源的用户不同。该问题在 https://symfony.ac.cn/doc/current/book/installation.html#configuration-and-setup 中有更详细的解释。要解决这个问题,只需遵循此页面上的步骤即可。例如,在 Ubuntu 上,我从项目根目录运行以下命令

sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX public/assets
sudo setfacl -dR -m u:www-data:rwX -m u:`whoami`:rwX public/assets

当使用缓存时,您需要做同样的操作

sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX app/storage
sudo setfacl -dR -m u:www-data:rwX -m u:`whoami`:rwX app/storage

更新日志

1.1: Laravel 4.1 兼容性
1.0: 添加对资源组的支持并改进缓存处理
0.8: 首次发布