konstantin-s/silex-assetmerge

合并JS或CSS文件列表为一个文件。合并的文件将缓存到磁盘。需要Twig。

v0.151 2016-02-12 18:23 UTC

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

在Packagist查看

用法

注册提供者

$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>

的示例输出,其中6e8109cbc09fbc2b4b1543b8d1f33c14df764eb96f1c811270e575caaa87de82是文件名的MD5哈希值,传递给setCssFiles()和setJsFiles()