Laravel Glide在扩展名的网址上找不到图像

时间:2015-05-19 17:42:04

标签: laravel image-manipulation php-glide

我正在使用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,再次失败。

你认为我做的事情有什么问题,或者说我为什么不能直接转到图片 路径(带扩展名)?

2 个答案:

答案 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缓存图像。