- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我目前正在使用 Laravel 5 并利用干预图像集成:http://image.intervention.io/
我正在动态地使用它,所以图像有这样的 URL:
一切正常,但我注意到这些图像不会缓存。其他人这样做,但不是我的动态。
这是我的htaccess
<FilesMatch "\.(ico|pdf|jpg|jpeg|png|gif|html|htm|xml|txt|xsl)$">
Header set Cache-Control "max-age=31536050"
</FilesMatch>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"
</IfModule>
如果我真的通过 FTP 连接并查看缓存的图像,它们是这样存储的:
/storage/framework/cache/55/ba/0245f7453543100cf0aaa4709eca82f4
如果每次都必须重新加载,那么缓存有什么意义呢?我怀疑问题是浏览器不知道这些文件是什么(它们没有扩展名)所以它不会缓存它们。
这里是一些示例 laravel 代码:
$cache_image = Image::cache( function ( $image ) use ( $size, $name ) {
return $image->make( url( '/uploads/' . $name ) )->resize( $size[0], $size[1], function ( $constraint ) {
$constraint->aspectRatio();
$constraint->upsize();
} );
}, $cache_length )->sharpen(5);
...
return Response::make( $cache_image, 200, [ 'Content-Type' => 'image' ] );
chrome 中的页眉如下所示:
GET /media/1600x340/2/img_0033-copy.jpg HTTP/1.1
Host: mywebsite.com.au
Connection: keep-alive
Accept: image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36 FirePHP/4Chrome
Referer: http://mywebsite.com.au/functions
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
Cookie: __cfduid=d4fee20f7753d88962b94c880cec57f981435071761; _gat=1; _ga=GA1.3.1903752380.1435076392; XSRF-TOKEN=eyJpdiI6IkFpMHJDTDZtTTVoczVaSkxaZ1hjNmc9PSIsInZhbHVlIjoiVlVRSk1ibCtCWHpZNW5SQkl0NTA2bVN2Tmh4c0N6aW5TWGZ1Njk1WG1Gb05XXC91dW5DYjdLNWpGXC9kSWFsYXZ6bDZMQ0NmZE15UlVvMFV3OEN1bWJPZz09IiwibWFjIjoiZGI1OTYwM2IwZTNhYWFlM2I5NGExNTkzNTlkN2YxNGI4Y2IzNjI5ODU5Y2RjNTRkODYxMWIxNDJiMDM3NGI5YyJ9; laravel_session=eyJpdiI6Ikc5a3ZibmZraG9aZElnYWFKUG5CWHc9PSIsInZhbHVlIjoiblRWcDRxQW9ORGl0RFdubDJ3NTdXR3lNdUcyWmtnSkEyXC9sZFI3VWQ2NkVBdUxJNWVpZU5ubEZ2RG1HbVF6SHdYNFhob21UOEVjOVZxMklKdndxQ3dBPT0iLCJtYWMiOiIwMThlMGZkMTdlNWM5MDQ4OWYxNzIwMzE2NzhhMzEzMjg1MGM4NjI2NzRkMmJhMWEzNmUzN2MyNjJhYzdjNjQ1In0%3D
X-FirePHP-Version: 0.0.6
X-Wf-Max-Combined-Size: 261120
有什么想法吗?希望我可以用 htaccess 文件解决这个问题
最佳答案
你可以在浏览器端缓存它。只需将 header 添加到响应中,如下所示,
return Response::make( $cache_image, 200, [ 'Content-Type' => 'image' ] )
->setMaxAge(604800) //seconds
->setPublic();
关于php - 使用 Laravel Intervention 库缓存动态图像不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31009027/
前言 Intervention/image 是为 Laravel 定制的图片处理工具, 它提供了一套易于表达的方式来创建、编辑图片。 Demo 代码请见: Github:https://git
在我的 Laravel 网络应用程序中,我使用了 Intervention Image library .我正在保存上传图片的三个版本:'original' , '500_auto'和自定义大小的图像
我正在上传 iPhone 图像 - 由 iPhone 相机垂直拍摄 - 尺寸为 2448x3264并且因为当我创建 600x360 的拇指时,这个尺寸太高了(?)它会自动旋转到水平。 我尝试了什么没有
我目前正在使用 Laravel 5 并利用干预图像集成:http://image.intervention.io/ 我正在动态地使用它,所以图像有这样的 URL: http://example.org
我刚刚按照此处的说明安装了干预图像类:http://image.intervention.io/getting_started/installation 我还将这两行添加到 config/app.ph
无法将图像数据写入路径(Laravel) 我无法将任何内容保存到Laravel项目的存储目录中,并收到以下错误: 最近三周,我一直在努力找出为什么我无法在没有运气的情况下将图像保存到Storage的L
我正在寻找一个错误,一个解决方案说要做:“文件>使缓存无效并重新启动” 但后来我发现我的 build.gradle 被未知数据替换。 后来我又用“以前的”数据替换了它。再次执行相同的“文件 > 使缓存
首先,如果我的问题可能过于模糊,我很抱歉。所以,我会尽量澄清我的问题。 我目前正在开发 Laravel 应用程序,我正在尝试使用 Intervention Image Facade。当我尝试使用它来测
我收到此错误消息: Call to undefined function Intervention\\Image\\Gd\\imagecreatefromjpeg() 这是我的 php 信息: htt
我正在尝试找出一种方法来清除使用 Intervention/ImageCache 的操作模板创建的图像的所有操作的缓存(将来可能还会使用缓存功能)。 我有一些在图像上运行自定义过滤器的操作模板: 't
我正在尝试找出一种方法来清除使用 Intervention/ImageCache 的操作模板创建的图像的所有操作的缓存(将来可能还会使用缓存功能)。 我有一些在图像上运行自定义过滤器的操作模板: 't
假设我有一个最喜欢的正方形尺寸,在本例中它的宽度和高度为 2236 px。 我需要使用 php intervention package 在我的服务器上保存我的图像。 用户的图像大小是多少并不重要,关
我在 Laravel 5.6 中使用 Intervention 包,每当我上传文件时都会遇到这个问题,我收到错误编码格式 (tmp) 不受支持。我也启用了 gdd2 扩展。这是我使用过的代码。 pub
我正在使用 Laravel 4。当一切似乎都正确时,我不确定为什么会出现此错误。此外,该产品不会更新到数据库。 Error: Intervention \ Image \ Exception \ Im
我想学习使用 MS Release Management 创建发布模板的最佳实践。 下面屏幕中红色标记的控制流工具有什么用? 最佳答案 据我所知,“序列”毫无用处。 “平行”是一个容器。您可以将多个服
我使用干预/图像从 Laravel 4.2 升级到 Laraveld5.3:“^2.3”, if (Input::hasFile('logo')) { $path = public_
当我在本地主机中使用 Laravel Intervention 图像时,它工作得很好,但是当我在我的控制面板中上传实时服务器时,它就无法工作了...... 最佳答案 在配置/app.php 在 $pr
我正在尝试将干预图像集成到我的项目中。我遵循了该指南,使用了很多其他教程,无论我做什么,我总是遇到同样的错误: Class 'Intervention\Image\ImageServiceProvid
我尝试在 docker(version: '3.1', ) 下安装我的 laravel 5.7.19 应用程序并运行一些页面,但出现错误: Call to undefined function Int
当我在本地主机中使用 Laravel Intervention 图像时,它工作得很好,但是当我在我的控制面板中上传实时服务器时,它就无法工作了...... 最佳答案 在配置/app.php 在 $pr
我是一名优秀的程序员,十分优秀!