necromant2005 / cdn
2.4.0
2021-12-31 16:46 UTC
Requires
- php: >=7.4
- laminas/laminas-stdlib: *
- laminas/laminas-view: *
README
版本 2.* 由 Rostislav Mykhajliw 创建
介绍
TweeCdn 是一组视图辅助工具,用于支持因规则而进行的 CSS/js/图片链接转换。
要求
- php >= 7
- zendframework/zend-stdlib
- zendframework/zend-view
特性 / 目标
- 简单:通过在文件末尾添加 ?timestamp 标记,例如 /css/test.css?1234567
- 通过给定的 REVISION 数字标识新的静态文件版本,例如 /css/1234/test.css
- 基于文件 md5 哈希的构建唯一标记,例如 /css/af34c42/test.css。这允许用户只加载已更改的文件。
- 支持多个主机名,例如 host1.com, host2.com
- 哈希生成器
安装
主要设置
使用 composer
-
在您的 composer.json 中添加此项目和 Cdn
"require": { "necromant2005/cdn": "*", }
-
现在运行以下命令,让 composer 下载 TweeCdn:
$ php composer.phar update
安装后
在 "application.config.php" 文件中启用它。
```php
<?php
return array(
'modules' => array(
// ...
'TweeCdn',
),
// ...
);
```
高级配置
- type - cdn 类型
- public_dir - 公共目录路径
- hostnames - 可用主机名列表
- hashes - 哈希列表(file_path => hash)
- mapping - 将特定文件路径映射到全局 CDNs:Google/NetDNA/MaxCDN
Options hostnames - 支持所有 cdn 辅助工具。
-
简单(默认模式)简单模式会在文件末尾添加 ?timestamp 标记
/css/simple.css
转换为
/css/simple.css?1353231966
将 jQuery 映射到 Google CDN 的配置(https://developers.google.com/speed/libraries/devguide)
<?php return array( 'di' => array( 'instance' => array( 'TweeCdn\View\Helper\Cdn' => array( 'parameters' => array( // simple configuration 'type' => 'simple', 'options' => array( 'public_dir' => __DIR__ . '/../../../../public', 'mappings' => array( '/js/jquery.js' => '//ajax.googleapis.ac.cn/ajax/libs/jquery/1.8.3/jquery.min.js' ), ), ), ), ), ), );
-
发布发布基于辅助工具将存储在 "/RELEASE" 文件中的发布号放在第一个文件夹名之后。因此,每个发布都有一个唯一的路径。(默认情况下,"RELEASE" 文件由 远程多服务器自动化工具 - Capistrano 创建)
/css/simple.css
转换为
/css/1353231966/simple.css
配置
<?php return array( 'di' => array( 'instance' => array( 'TweeCdn\View\Helper\Cdn' => array( 'parameters' => array( // simple configuration 'release' => 'release', 'options' => array( 'public_dir' => __DIR__ . '/../../../../public', 'release' => trim(file_get_contents(__DIR__ . '/../../../../REVISION')), ), ), ), ), ), );
-
哈希哈希几乎与“发布”相同,但使用唯一的文件内容哈希。它可以在两种模式下工作
- 动态 - 当哈希在飞行中生成时
- 预编译 - 使用现有的哈希映射对于“预编译”模式,您可以使用脚本来生成哈希映射文件。它创建 tmp/hashes.php 文件列表。最终,它使应用程序更快,因为您通过在每次请求中跳过文件 md5 计算来减少磁盘 I/O。
vendor/bin/hash_collector.php
原始
/css/simple.css
转换为
/css/72e7d8fb348a326251c37821d1b6bfe16ea69d6e/simple.css
配置示例,包含错过 tmp/hashes.php 文件和主机名的故障恢复保护。文件将根据文件名通过 cdn-0 和 cdn-1 随机分发。
<?php return array( 'di' => array( 'instance' => array( 'TweeCdn\View\Helper\Cdn' => array( 'parameters' => array( // simple configuration 'release' => 'hash', 'options' => array( 'public_dir' => __DIR__ . '/../../../../public', 'hostnames' => array('http://cdn-0.coockieless.domain.com', 'http://cdn-1.coockieless.domain.com'), 'hashes' => (file_exists(__DIR__ . '/../tmp/hashes.php')) ? include __DIR__ . '/../tmp/hashes.php' : array(), ), ), ), ), ), );