Laravel Page Speed نام یک پکیج است که توسط رناتو مارینو برای بهینه سازی اتوماتیک سایت شما ایجاد شده است. این بسته از mod_pagespeed گوگل الهام گرفته است و قابلیت های زیر را ارائه می کند:
- inline_css : فایل های css خارجی کوچک را به صورت Inline در می آورد
- elide_attributes : خصیصه های غیرضروری را از تگ های HTML حذف می کند
- insert_dns_prefetch : تگ هایی را به بخش Head صفحه می افزاید تا مرورگر بتواند عمل DNS Prefetching را انجام دهد
- remove_quotes : کوتیشن های غیرضروری را حذف می کند
- trim_urls : پیشوندهای غیرضروری را از ابتدای url ها بر می دارد
- collapse_whitespace : فضاهای خالی غیرضروری را از کدهای HTML بر می دارد
- remove_comments : کامنت های HTML را بر می دارد
امکانات بیشتر کم کم در حال اضافه شدن به این پکیج هستند مثل Combine فایل های CSS برای قرار دادن چند فایل css در یک فایل و Combine فایل های Javascript که کار مشابهی را این بار روی فایل های جاوا اسکریپت انجام می دهد.
عمل بهینه سازی به این صورت انجام می شود که یک middleware برای هر نوع از عملیات های بهینه سازی بالا تعریف می کنیم که بعد از آن می توانیم آنها را به یک route ویا گروهی از route ها اعمال کنیم:
//app/Http/Kernel.php protected $middleware = [ ... \RenatoMarinho\LaravelPageSpeed\Middleware\InlineCss::class, \RenatoMarinho\LaravelPageSpeed\Middleware\ElideAttributes::class, \RenatoMarinho\LaravelPageSpeed\Middleware\InsertDNSPrefetch::class, \RenatoMarinho\LaravelPageSpeed\Middleware\RemoveComments::class, \RenatoMarinho\LaravelPageSpeed\Middleware\TrimUrls::class, \RenatoMarinho\LaravelPageSpeed\Middleware\RemoveQuotes::class, \RenatoMarinho\LaravelPageSpeed\Middleware\CollapseWhitespace::class, ]
همچنین می توانید route هایی را از این قاعده مستثنا کنید برای این کار در فایل تنظیمات پکیج باید به این صورت عمل کنید:
'skip' => [ '*.pdf', // Ignore all routes with final .pdf '*/downloads/*',// Ignore all routes that contain 'downloads' ]
برای اطلاعات بیشتر در مورد این پکیج و مستندات آن می توانید به این مخزن گیت هاب مراجعه کنید.