vinorcola/distant-versioned-assets-bundle

通过加载manifest.json文件来使用远程版本化资产。

v1.0.0 2018-08-06 08:41 UTC

This package is auto-updated.

Last update: 2024-09-07 15:28:15 UTC


README

跨项目链接版本化资产。

如果你的应用程序需要使用来自远程源的一些资产,并且这些资产是版本化的,你可以使用此包来链接它们。唯一的要求是远程源发布一个 manifest.json 文件。

你可以配置多个目标(即远程源)

安装

composer require vinorcola/distant-versioned-assets-bundle

配置

你必须配置至少一个目标。

# config/packages/vinorcola_distant_versioned_assets.yaml

vinorcola_distant_versioned_assets:
    targets:
        default:
            url: https://my-distant-storage.com
            manifestPath: build/manifest.json # Optional, default value
            cacheTtl: 3600 # Optional, default value

清单路径是可选的,默认为 build/manifest.json。清单文件将被获取,其内容将被缓存,以避免每次请求都查询远程源。你可以配置缓存TTL(默认为1小时)。

使用方法

然后,在Twig模板中,你可以简单地使用 distantAsset 函数而不是 asset 函数。

<link href="{{ distantAsset('build/style.css) }}" rel="stylesheet" />
<script src="{{ distantAsset('build/library.js') }}"></script>

高级使用

如果需要,你可以配置多个目标。

# config/packages/vinorcola_distant_versioned_assets.yaml

vinorcola_distant_versioned_assets:
    targets:
        default:
            url: https://my-distant-storage.com
        reference:
            url: https://my-reference-storage.com
<script src="{{ distantAsset('build/library.js') }}"></script> {# Uses the default target. #}
<script src="{{ distantAsset('build/library.js', 'reference) }}"></script> {# Uses the reference target. #}

如果你没有名为 default 的目标,你必须指定默认目标

# config/packages/vinorcola_distant_versioned_assets.yaml

vinorcola_distant_versioned_assets:
    defaultTarget: storage
    targets:
        storage:
            url: https://my-distant-storage.com
        reference:
            url: https://my-reference-storage.com

请注意,如果你只有一个目标,不需要配置 defaultTarget 选项,无论目标名称是什么。