Trong Laravel 4.0, tôi sử dụng mã dưới đây để nén các kết quả đầu ra đáp ứng HTML laravel để trình duyệt, tuy nhiên nó không hoạt động trong laravel 5.Làm thế nào để nén HTML trong laravel 5
App::after(function($request, $response)
{
if($response instanceof Illuminate\Http\Response)
{
$buffer = $response->getContent();
if(strpos($buffer,'<pre>') !== false)
{
$replace = array(
'/<!--[^\[](.*?)[^\]]-->/s' => '',
"/<\?php/" => '<?php ',
"/\r/" => '',
"/>\n</" => '><',
"/>\s+\n</" => '><',
"/>\n\s+</" => '><',
);
}
else
{
$replace = array(
'/<!--[^\[](.*?)[^\]]-->/s' => '',
"/<\?php/" => '<?php ',
"/\n([\S])/" => '$1',
"/\r/" => '',
"/\n/" => '',
"/\t/" => '',
"/ +/" => ' ',
);
}
$buffer = preg_replace(array_keys($replace), array_values($replace), $buffer);
$response->setContent($buffer);
}
});
hãy làm thế nào để tôi làm công việc này trong laravel 5.
HOẶC
Vui lòng cung cấp một cách tốt hơn nén HTML trong laravel 5 nếu có. Cảm ơn trước.
NB: Tôi không muốn sử dụng bất kỳ gói laravel nào để nén html, chỉ cần một mã đơn giản thực hiện công việc mà không làm mất hiệu suất.
Tôi biết bạn đã nói bạn không muốn một pacakge - nhưng https://github.com/GrahamCampbell/Laravel-HTMLMin là giải pháp hoàn hảo. Và nó sẽ không "giết hiệu suất" bất kỳ cách nào khác hơn là nếu bạn tự mình làm nó. – Laurence
Tôi khuyên bạn không nên làm gì với _at all_ - một phần tử 'pre' không phải là thứ duy nhất mà không gian trắng có thể quan trọng, mà còn bên trong' textarea'/'input' hoặc về cơ bản trong phần tử _any_ nếu nó sau này trên _formatted_ qua CSS ('khoảng trống trắng'). Chỉ __GZip__ đầu ra trước khi gửi nó cho khách hàng, điều đó hiệu quả hơn nhiều so với việc làm rối tung mã HTML. – CBroe
@cbroe làm cách nào để sử dụng GZip? bất kỳ ví dụ làm việc nào – Digitlimit