devture/silex-asset-bundle

Silex 组件,提供一些简单的项目资源链接

2.0 2017-03-17 16:37 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:58:47 UTC


README

提供资源链接

配置示例

文章组件数据源示例

"AssetBundle": {
	"allow_cdn": true,
	"asset_path": "/srv/http/example.com/web",
	"asset_url_prefix": ""
}

初始化

$namespace = 'asset';
$app->register(new \Devture\Bundle\AssetBundle\ServicesProvider($asset, $this['config']['AssetBundle']));

所有提供的 Twig 函数都将以前缀 asset_(注册时使用的命名空间)开头。

用法

基本资源加载

使用 asset_url(LOCAL_FILE) 函数将生成文件的 URL。为了缓存(缓存破坏)目的,该文件将被其最后修改时间戳标记。

<script type='text/javascript' src='{{ asset_url('/js/jquery.min.js') }}'></script>

结果

<script type='text/javascript' src='/js/jquery.min.js?1448329282'></script>

CDN 支持的资源加载

就像 asset_url(LOCAL_FILE) 一样,您可以使用 asset_url_with_cdn(LOCAL_FILE, CDN_MIRROR_URI) 来指定一个在 LOCAL_FILE 路径和 CDN_MIRROR_URI URI 上都可用的资源。

根据 allow_cdn 配置参数(注册组件时传递),将使用适当的 URI。

示例

<script type='text/javascript'
	src='{{ asset_url('/js/jquery.min.js', 'https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js') }}'></script>

结果(如果配置允许使用 CDN)

<script type='text/javascript' src='https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js'></script>

结果(如果配置不允许使用 CDN)

<script type='text/javascript' src='/js/jquery.min.js?1448329282'></script>

如果您依赖于 CDN 加载,您还可以利用 子资源完整性,以确保您加载的资源正是您期望的。

示例

<script type='text/javascript'
	src='{{ asset_url('/js/jquery.min.js', 'https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js') }}'
	crossorigin="anonymous"></script>