如何在我的 Laravel/OctoberCMS 站点上自动压缩图像?

How to auto compress images on my Laravel/OctoberCMS site?

我已经开发了一些 OctoberCMS 网站(基于 Laravel 构建的 CMS),但网站上的图像存在很大问题。由于上面有图片,网站速度很慢。

所以尝试缩小所有 css 和 js 文件,但仍然很慢。所以我想知道是否有一个包可以压缩上传到网站的每张图片?

最好的解决方案是什么?我搜索了很多,但没有找到任何有用的信息。

优化图像的最佳方法是在前端使用正确的尺寸。 OctoberCMS 为您提供内置缩略图生成器。

<img src="{{ image.thumb(200, 200, {mode:'auto',quality:85}) }}" title="{{ image.title }}" alt="{{ image.description }}">

使用此功能,您可以设置大小、压缩质量和模式:自动模式、精确模式、纵向模式、横向模式、裁剪模式。默认值:自动

另外不要忘记为您的图像添加过期时间

# BEGIN Expire headers
<IfModule mod_expires.c>
 ExpiresActive On
 ExpiresDefault "access plus 7200 seconds"
 ExpiresByType image/jpg "access plus 2592000 seconds"
 ExpiresByType image/jpeg "access plus 2592000 seconds"
 ExpiresByType image/png "access plus 2592000 seconds"
 ExpiresByType image/gif "access plus 2592000 seconds"
 AddType image/x-icon .ico
 ExpiresByType image/ico "access plus 2592000 seconds"
 ExpiresByType image/icon "access plus 2592000 seconds"
 ExpiresByType image/x-icon "access plus 2592000 seconds"
 ExpiresByType text/css "access plus 2592000 seconds"
 ExpiresByType text/javascript "access plus 2592000 seconds"
 ExpiresByType text/html "access plus 7200 seconds"
 ExpiresByType application/xhtml+xml "access plus 7200 seconds"
 ExpiresByType application/javascript A2592000
 ExpiresByType application/x-javascript "access plus 2592000 seconds"
 ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
</IfModule>
# END Expire headers

此模块控制 Expires HTTP header 的设置和服务器响应中 Cache-Control HTTP header 的 max-age 指令。到期日期可以设置为相对于源文件上次修改的时间,或者客户端访问的时间。

这些 HTTP header 是向客户端发出的有关文档有效性和持久性的说明。如果已缓存,则在该时间过去之前,可能会从缓存中而不是从源中获取文档。之后缓存副本被认为"expired"无效,必须从源获取新的副本。这加快了网站速度,因为浏览器不必一次又一次地加载相同的图像。

更多信息:https://www.howtoforge.com/make-browsers-cache-static-files-with-mod_expires-on-apache2-debian-squeeze