我正在使用Glide,并关注此视频https://vimeo.com/118089742,这基本上是一个演练 有关官方网站http://glide.thephpleague.com/
的说明这是我的服务提供商:
$this->app->singleton('League\Glide\Server', function ($app) {
return \League\Glide\ServerFactory::create([
'source' => public_path(),
'cache' => public_path(),
'source_path_prefix' => 'images/uploads',
'cache_path_prefix' => 'images/cache',
'base_url' => '/img/',
]);
});
这是我目前的路线:
Route::get('img/{path}', function (League\Glide\Server $server, Illuminate\Http\Request $request) {
$server->outputImage($request);
});
但我遇到了问题。当我去url.com/img/test.png?h=100时,它不起作用。看着铬 在页面上开发工具,我得到图像的404(但是,原始图像出现了)。
我发现如果我将路线切换到以下,只去url.com/img/test?h=100(没有扩展名), 然后我得到了我想要的Glided图像:
Route::get('img/{path}', function (League\Glide\Server $server, Illuminate\Http\Request $request) {
$server->outputImage($request->path() . '.png', $request->all());
});
但是,如果我删除扩展名的连接并简单地使用:
Route::get('img/{path}', function (League\Glide\Server $server, Illuminate\Http\Request $request) {
$server->outputImage($request->path(), $request->all());
});
然后返回url.com/img/test.png?h=100,再次失败。
你认为我做的事情有什么问题,或者说我为什么不能直接转到图片 路径(带扩展名)?
答案 0 :(得分:1)
我遇到了同样的问题并尝试了很多东西。所有以/ img /开头的网址都是Glide生成的图片。所有in / assets /都是静态文件。 我已经放弃并改变了
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$
到
location ~* ^/assets/.*\.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$
。
希望有人有一个很好的解决方案!
答案 1 :(得分:0)
这都是一个缓存问题。在使用Glide之前,请不要通过htaccess或nginx缓存图像。