loveduckie / silverstripe-webp-image

自动从现有的 .jpeg, .png 和 .gif 文件生成并服务 .webp 图片。

安装: 568

依赖: 0

建议者: 0

安全: 0

星标: 3

关注者: 1

分支: 14

类型:silverstripe-vendormodule

dev-master 2024-09-16 22:15 UTC

This package is auto-updated.

Last update: 2024-09-22 16:48:45 UTC


README

Build Status License

概述

此模块通过在请求时自动将图像资产转换为 .webp 格式来自动优化图像资产。有关 WebP 图像格式的更多信息,请参阅此处。有关对本次分支所做的修改及其理由的详细信息,请参阅以下链接。

优化页面速度的技巧

与 NGINX 集成

我已经修改了此插件,使得创建的 .webp 文件具有 file_name_goes_here.<original extension>.webp 的文件名。这样做的原因是可以通过类似下面的 NGINX 配置等方式,自动用创建的图像替换原始图像资产。

map $http_accept $webp_suffix {
  default   "";
  "~*webp"  ".webp";
}

location ~* /assets/.+\.(?<extension>jpe?g|png|gif|webp)$ {
    # more_set_headers 'Content-Type: image/webp';
    gzip_static on;
    gzip_types image/png image/x-icon image/webp image/svg+xml image/jpeg image/gif;

    add_header Vary Accept;
    expires max;
    sendfile on;
    try_files "${request_uri}${webp_suffix}" $uri =404;
}

如果请求的 Web 客户端将其 Accept 头部分为 webp,则 webp_suffix 变量将被填充为 .webp 扩展名。然后 NGINX 将尝试找到该资产的 .webp 版本,如果找不到,则提供原始版本。

简介

此模块从调整大小的 jpeg 和 png 图像创建 webp 图片。有关 webp 图片的更多信息,请参阅https://developers.google.com/speed/webp/

要求

  • Silverstripe > 4.2
  • GDLib with webp Extension

安装

composer require loveduckie/silverstripe-webp-image

使用

  • 运行 dev/build?flush=1

  • 强制浏览器加载 webp 图片 // 示例 1 (默认) 编辑 root 目录下的 .htaccess 文件,并在兼容的浏览器中添加 webp 重定向

  • 强制浏览器加载 webp 图片 // 示例 2 关于 html 中 webp 图片使用的更多信息,请参阅 css-tricks.com

快速测试文件以检查 webp 是否可用

以下代码可以快速检查是否已安装 GD 库支持 webp。只需将此代码复制到您的 root 文件夹中的一个 .php 文件中,然后在浏览器中打开该文件。

<?php

if (function_exists(imagewebp)) {
    echo "WebP is available";
} else {
    echo "WebP is not available";
}

待办事项

  • 文档
  • IMagick 支持
  • PHP 测试以检查支持
  • 删除 Webp 图片
  • 刷新 Webp 图片