0

サイト内の画像のサイズを動的に変更する介入パッケージを実装しています。それはかなりうまく機能しており、私はそれに満足しています。これが私がそれを行う方法の例です:

Route::get('images/ads/{width}-{ad_image}-{permalink}.{format}', function($width, $image, $permalink, $format)
{
    $img = Image::make($image->path)
        ->resize($width, null, function($constraint){
            $constraint->aspectRatio();
        });
    return $img->response($format);
});

最近、ミドルウェアを介してビューを自動圧縮することで、サイトの読み込みを高速化することを考えました。

class HTMLminify
{
    public function handle($request, Closure $next) {
        $response = $next($request);
        $content = $response->getContent();

        $search = array(
            '/\>[^\S ]+/s', // strip whitespaces after tags, except space
            '/[^\S ]+\</s', // strip whitespaces before tags, except space
            '/(\s)+/s'       // shorten multiple whitespace sequences
        );

        $replace = array(
            '>',
            '<',
            '\\1'
        );

        $buffer = preg_replace($search, $replace, $content);
        return $response->setContent($buffer);
    }
}

それから悪夢が来ました。ブラウザーは、Intervention によって処理された画像が「切り詰められ」、表示されないと報告しています。ミドルウェアをオフにすると、問題なく画像が表示されます。

HTMLminify クラスのコードからわかる限り、ビューから生成された出力が変更され、空白が削除され、画像に干渉する理由がわかりません。

アイデアはありますか?

ありがとうございます。

4

1 に答える 1