webcoast / deferred-image-processing
在页面生成时请求图像处理而不是处理图像
Requires
- php: ^7.2 || ^8.0
- typo3/cms-core: ^v10.4.6 || ^v11.5.0
This package is auto-updated.
Last update: 2024-09-17 12:27:08 UTC
README
它是做什么的?
此扩展将图像处理从页面生成期间推迟到客户端(浏览器)实际请求图像时。当图像被处理并放置在存储的已处理文件夹中,它将不会被再次处理,直到它被删除或所有已处理的图像都被清除。
这对于一页上有很多图像的网站非常有用。而不是一个接一个地生成图像,导致页面生成速度大幅度延迟,图像处理负载被分配到可用的PHP进程,从而分配到多个CPU核心。
安装和配置
此扩展可在packagist.org获得
composer require webcoast/deferred-image-processing
或从TYPO3扩展仓库获取。
需要数据库更新以创建处理队列表。
apache重写规则
如果使用随TYPO3一起提供的默认htaccess文件,则存在一个规则,阻止所有未找到的静态文件的处理
# Stop rewrite processing, if we are in the typo3/ directory or any other known directory # NOTE: Add your additional local storages here RewriteRule ^(?:typo3/|fileadmin/|typo3conf/|typo3temp/|uploads/|favicon\.ico) - [L]
但对于此扩展正常工作,请求需要重定向到index.php,然后由中间件处理。所以请确保在上述阻止规则之前添加一个类似规则
# For EXT:deferred-image-processing # If a processed image is not found, then redirect to index.php and let the middleware create one on the fly. RewriteCond %{DOCUMENT_ROOT}/$1.$3 !-f RewriteRule ^((fileadmin/_processed_|other-storage/_processed_)/.+)\.(gif|jpg|jpeg|png)$ %{ENV:CWD}index.php [L]
处理队列(可选)
内部,每个延迟处理的图像的记录都存储在数据库表tx_deferredimageprocessing_file
中。为了清理此表或加快较少使用的文件的处理速度,可以使用命令控制器或计划任务处理其中的记录。此步骤完全可选,不是扩展工作的必要条件。
./typo3cms deferred_image_processing:process
# Process limiting to 5 items
./typo3cms deferred_image_processing:process 5
文档
由于扩展会自动完成所有操作,因此不需要进一步文档。如果您觉得文档可能有所帮助,请与我联系或提出疑问。
贡献
如果您发现错误或想改进扩展,您可以自由地分叉它并提交带有更改的pull request。如果您没有资源或知识,请提出问题。
许可证
© 2020, WEBcoast
本程序是自由软件:您可以自由地重新分发和/或修改它,具体请参阅自由软件基金会发布的GNU通用公共许可证条款,无论是许可证的第3版,还是(根据您的选择)任何较新版本。
本程序按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性或针对特定目的的适用性。有关详细信息,请参阅GNU通用公共许可证。
您应已收到此程序的GNU通用公共许可证副本。如果没有,请参阅http://www.gnu.org/licenses/。