Web Analytics Made Easy - StatCounter
Главная Блог Оптимизация Laravel AMP

Оптимизация Laravel AMP

Оптимизация Laravel AMP

Введение

AMP (Accelerated Mobile Pages) - это технология публикации веб-сайтов с открытым исходным кодом, разработанная Google. Это дает вашим пользователям быструю, легкую и почти мгновенную загрузку в мобильном Интернете. Если вы обеспокоены поисковой оптимизацией своего веб-сайта, настоятельно рекомендуется создать AMP-версию вашего веб-сайта. Это имеет огромное влияние на SEO. Когда мы ищем в Google через наше мобильное устройство, Google покажет такие результаты поиска, которые мгновенно загружаются в наш браузер.

Оптимизация Laravel AMP

Вас интересует, как создавать страницы AMP в Laravel Framework? Хорошо, не так уж и сложно реализовать версию amp на вашем существующем или новом веб-сайте laravel. В этой статье я покажу вам пошаговый процесс создания AMP-страниц вашего сайта в Laravel Framework без сторонних пакетов. Предположим, на нашем сайте есть такие маршруты или любые другие комбинации маршрутов.

Route::get('/','SiteController@home'); Route::get('/posts','SiteController@posts'); Route::get('/{slug}','SiteController@postDetails'); 

и такой код контроллера.

<?php namespace App\Http\Controllers\Site; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Post; class SiteController extends Controller { public function home(){ return view('site.home'); } public function posts(){ $data = Post::all(); return view('site.posts',compact('data')); } public function postDetails($slug){ $post = Post::where('slug',$slug)->first(); return view('site.single',compact('post')); } } 

Это простой сценарий, но на вашем сайте может быть больше маршрутов. Будет сложно сделать отдельный маршрут и файл контроллера для обработки страниц amp.

Мы больше не будем создавать маршруты для работы с нашей версией AMP. Мы используем существующие маршруты и файл контроллера для обработки нашей AMP-версии сайта с небольшими изменениями и хитростями. Давайте начнем.

Шаг 1. Добавьте метод mapAmpRoutes в routeServiceProvider.php

protected function mapAmpRoutes() { Route::prefix('amp') ->middleware('web') ->namespace($this->namespace) ->group(base_path('routes/web.php')); } 

и добавьте это в метод карты.

$this->mapAmpRoutes(); 

Он будет использовать наш файл маршрута web.php и существующие маршруты нашего сайта. Таким образом, наш базовый URL-адрес начинается с example.com/amp.

URLРезультат
example.com/ampОба будут использовать наш существующий метод контроллера
example.comОба будут использовать наш существующий метод контроллера
example.com/amp/postsОба будут использовать наш существующий метод контроллера.
example.com/postsОба будут использовать наш существующий метод контроллера.
example.com/amp/this-is-first-postОба будут использовать наш существующий метод контроллера.
example.com/this-is-first-postОба будут использовать наш существующий метод контроллера.


Теперь нам нужно определить, что текущий маршрут предназначен для запроса страницы amp или обычного просмотра, после чего мы доставим шаблон лезвия в соответствии с запросом маршрута. Давайте проделаем трюки, чтобы определить текущий маршрут для amp или нормальной страницы. Планируется, что при маршруте запроса для страницы amp мы вернем то же имя шаблона с суффиксом amp.

Пример

ВыводШаблон
Если нормальный запрос мы вернемhome.blade.php
Если запрос страницы amp, мы вернемhome-amp.blade.php


Шаг 2. Создайте детектор запросов

Добавьте этот метод в свой контроллер. Этот метод getView определит, что запрос относится к странице amp или нормальный.

private function getView($viewName) { if (request()->segment(1) == 'amp') { if (view()->exists($viewName . '-amp')) { $viewName .= '-amp'; } else { abort(404); } } return $viewName; } 

После добавления этого метода нам нужно просто обновить наш оператор возврата вида, например return view ($ this-> getView ('home')).

<?php namespace App\Http\Controllers\Site; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Post; class SiteController extends Controller { private function getView($viewName) { if (request()->segment(1) == 'amp') { if (view()->exists($viewName . '-amp')) { $viewName .= '-amp'; } else { abort(404); } } return $viewName; } public function home(){ return view($this->getView('site.home')); } public function posts(){ $data = Post::all(); return view($this->getView('site.posts'),compact('data')); } public function postDetails($slug){ $post = Post::where('slug',$slug)->first(); return view($this->getView('site.single'),compact('post')); } } 

Шаг 3. Создайте amp страницы

Теперь нам просто нужно создать эти страницы для запроса страницы amp.

home-amp.blade.php posts-amp.blade.php single-amp.blade.php 

У дизайна AMP-страницы есть определенные правила и направления. Если вы новичок и хотите узнать, как создать дизайн страницы AMP, ознакомьтесь с официальной документацией AMP и рекомендациями по созданию страницы AMP или вы можете бесплатно загрузить шаблон страницы AMP.

Надеюсь, эта статья поможет вам создать страницу с усилителем на сайте Laravel. Если вы найдете это полезным, поделитесь с другими.

Ссылки

Laravel AMP optimization