rosell-dk/webp-on-demand

为支持WebP的浏览器提供自动生成的WebP图像,而不是jpeg/png

1.0.0 2018-09-04 06:49 UTC

This package is auto-updated.

Last update: 2024-09-10 21:39:16 UTC


README

这个库现在是WebP Convert的一部分,因此已过时!

这是为支持WebP的浏览器(例如Google Chrome)自动提供WebP图像而不是jpeg/png的解决方案。

一旦设置,它将自动转换图像,无论它们如何引用。例如,它也可以在CSS中引用的图像上工作。由于该解决方案不需要对HTML进行任何更改,因此它可以轻松集成到任何网站/框架中(最近在wordpress.org上发布了一个Wordpress适配器 - 它也在github上)

注意:这个库很快将成为WebP Convert的一部分(即已弃用)

概述

设置由以下部分组成

  • 重定向规则,将JPG/PNG图像重定向到PHP脚本。

  • PHP脚本,通过调用此库的WebPOnDemand::convert()方法提供转换后的图像。

  • WebPOnDemand::convert()。检测是否可以提供现有的转换后的图像。如果可以,则提供它(除非原始图像已被修改)。否则,它将使用webp-convert-and-serve库转换图像。

要求

  • ApacheLiteSpeed Web服务器。也可以与NGINX一起使用。文档在路线图上。
  • PHP >= 5.6(我们只测试到5.6,但应该也可以在5.5上工作)
  • 至少有一个webp-convert转换器工作(它们有不同的要求)

安装

前两个步骤是您是否打算使用composer。 不使用composer? - 跟随我!

1. 使用composer要求此库

composer require rosell-dk/webp-on-demand

2. 创建脚本

创建一个名为webp-on-demand.php的文件,并将其放置在webroot中,或您喜欢在您的Web应用程序中的任何位置。

以下是一个启动的简单示例

<?php
require 'vendor/autoload.php';

use WebPOnDemand\WebPOnDemand;

$source = $_GET['source'];            // Absolute file path to source file. Comes from the .htaccess
$destination = $source . '.webp';     // Store the converted images besides the original images (other options are available!)

$options = [

    // UNCOMMENT NEXT LINE, WHEN YOU ARE UP AND RUNNING!    
    'show-report' => true             // Show a conversion report instead of serving the converted image.

    // More options available!
];
WebPOnDemand::serve($source, $destination, $options);

3. 添加重定向规则

在您想要webp-on-demand进行其魔法的目录中,将以下重写规则放置在.htaccess文件中

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Redirect images to webp-on-demand.php (if browser supports webp)
    RewriteCond %{HTTP_ACCEPT} image/webp
    RewriteRule ^(.*)\.(jpe?g|png)$ webp-on-demand.php?source=%{SCRIPT_FILENAME} [NC,L]
</IfModule>

AddType image/webp .webp

如果您已将webp-on-demand.php放置在子文件夹中,您需要相应地更改重写规则。

4. 验证它是否工作

浏览到一个JPEG图像。您应该看到一个转换报告而不是图像。希望您得到成功。否则,您需要连接到云转换器或尝试满足cwebp、gd或imagick的要求。您可以在webp-convert的GitHub页面上了解更多关于可用选项的信息

一旦成功转换,您就可以在脚本中取消注释“show-report”选项。

它应该可以工作了,但要绝对确定

  1. 使用Google Chrome访问您的网站上带有图像的页面。
  • 右键单击页面并选择“检查”
  • 单击“网络”选项卡
  • 重新加载页面
  • 在列表中找到一个jpeg或png图片。在“类型”列中,应该显示“webp”。图片上还应有一个X-WebP-On-Demand头。

5. 自定义和调整

基本自定义是通过在$options数组中设置选项来完成的

其他调整在docs/tweaks.md中描述

故障排除

重定向规则似乎不起作用

如果图片既没有被路由到转换器也没有404错误,这意味着重定向规则没有生效。这种情况的常见原因包括:

  • 可能你的.htaccess中存在其他规则干扰了这些规则?
  • 可能你的网站配置为使用Apache,但已经配置为使用Nginx来服务图片文件。那么你需要重新配置你的服务器设置。或者创建Nginx规则。这里有一些示例
  • 可能服务器没有配置为允许.htaccess文件?尝试在.htaccess文件顶部插入垃圾内容并刷新。现在你应该看到一个内部服务器错误页面。如果没有,你的.htaccess文件被忽略了。你可能需要在虚拟主机中设置AllowOverride All。更多帮助请查看这里

相关