devture / silex-asset-bundle
Silex 组件,提供一些简单的项目资源链接
2.0
2017-03-17 16:37 UTC
Requires
- silex/silex: ^2.0
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>