konstantin-s / silex-assetmerge
合并JS或CSS文件列表为一个文件。合并的文件将缓存到磁盘。需要Twig。
v0.151
2016-02-12 18:23 UTC
Requires
- silex/silex: ~1.3
- symfony/twig-bridge: 2.7.*
This package is not auto-updated.
Last update: 2024-09-20 21:37:30 UTC
README
描述
为了提升性能,建议减少对Web服务器的请求次数。
我发现我的网站上加载了太多的CSS和JS文件,并决定通过合并成一个文件来大幅减少它们的数量。
自动、可配置、可重用。
这是我在GitHub上的第一个共享项目,我的母语不是英语。抱歉!
安装
通过composer
composer require konstantin-s/silex-assetmerge
用法
注册提供者
$app->register(new Performance\AssetMerge\AssetMergeProvider());
配置参数
带参数注册提供者
$app->register(new Performance\AssetMerge\AssetMergeProvider(), array( "assetmerge.config" => array( "active" => true, "alwaysReMerge" => true, "fetchRemote" => false, "mergedCssRootDir" => "/my_merged_css/", "mergedJsRootDir" => "/my_merged_js/" ) ));
在TWIG模板中的使用
{% set cssFiles = ["/assets/vendor/twbs/css/bootstrap.css", "/assets/vendor/twbs/css/bootstrap-theme.css", "/assets/vendor/prism/prism.css", "/assets/styles/style.css"] %} {{ app.assetmerge_config.setCssFiles(cssFiles) }} {% set jsFiles = ["https://ajax.googleapis.ac.cn/ajax/libs/jquery/2.1.4/jquery.min.js", "/assets/vendor/twbs/js/bootstrap.js", "/assets/vendor/prism/prism.js", "/assets/scripts/common.js"] %} {{ app.assetmerge_config.setJsFiles(jsFiles) }} {# You can set parameters, set to inactive for example: {{ app.assetmerge_config.setactive(false) }} #} {{app.assetmerge_merger.getScripts|raw}}
{{app.assetmerge_merger.getScripts|raw}}
<link href="/assets/merged/6e8109cbc09fbc2b4b1543b8d1f33c14/styles.css" rel="stylesheet" type="text/css"/> <script src="/assets/merged/df764eb96f1c811270e575caaa87de82/js.js" type="text/javascript"></script>
的示例输出,其中
6e8109cbc09fbc2b4b1543b8d1f33c14
和df764eb96f1c811270e575caaa87de82
是文件名的MD5哈希值,传递给setCssFiles()和setJsFiles()