henryvolkmer / asset-publisher

该包最新版本(1.0.2)没有可用的许可信息。

如果你不能使用Webpack,则可以使用这个简化的资产发布器。

1.0.2 2023-07-17 12:51 UTC

This package is auto-updated.

Last update: 2024-09-17 15:44:17 UTC


README

这是一个轻量级的资产发布器。大多数资产(如图片、CSS、JavaScript文件)位于项目的 vendor/ 目录或其他受保护文件夹中,无法通过用户的浏览器访问。

在包配置中的“assets”部分提供了发布策略。键 sources 定义了一个资产源数组。源数组键定义了目标文件名。

在这个例子中,bootstrap.css 被复制到 %kernel.project_dir%/web/assets/style.css

publicpath: "%kernel.project_dir%/web/assets"
sources:
    styles.css:
        - "%kernel.project_dir%/vendor/bootstrap/bootstrap.css"

让我们看看这个配置文件(config/packages/assets.yml

asset_publisher:
    assets:
        publicpath: "%kernel.project_dir%/web/assets"
        sources:
            # symlink: the folder "pictures" will be symlinked to web/assets/images
            images:
                - "%kernel.project_dir%/app/Resources/Views/pictures"
            # merge: asset-source are multiple files, all files will be merged into "web/assets/style.css"
            styles.css:
                - "%kernel.project_dir%/web/libs/library/extern-js/jquery-ui/jquery.tooltip.css"
                - "%kernel.project_dir%/web/libs/library/extern-js/fancybox/jquery.fancybox-1.3.4.css"
            # copy: asset-source is a single file and will be copied to web/assets/js-tree.min.css
            js-tree.min.css:
                - "%kernel.project_dir%/web/libs/library/extern-js/jstree/themes/default/style.min.css"

发布策略

符号链接

从资产源创建到公开路径的符号链接

  • 源必须是目录

合并

合并所有资产源文件到一个共同的公开文件。

  • 源必须包含至少两个文件

复制

将资产源复制到公开路径

  • 源必须是单个文件

安装

  1. composer require henryvolkmer/asset-publisher
  2. 在 bundles.php 中注册该包
<?php
// config/bundles.php
return [
    // ...
    Henry\AssetPublisherBundle\AssetPublisherBundle::class => ['all' => true],