web-dev-qa-db-ja.com

メタタグをlaravelページに追加します

Laravelページに説明とキーワードを追加しようとしています。

このように機能していますか?それとも何か問題がありますか?

@section('title')
{{trans('strings.About')}}
@stop
@section('description', 'Share text and photos with your friends and have fun')
@section('keywords', 'sharing, sharing text, text, sharing photo, photo,')
@section('robots', 'index, follow')
@section('revisit-after', 'content="3 days')
8
Oleg Grytsenko

これらすべてを使用する別のテンプレートを拡張していますかsections?単独では機能せず、別のテンプレートにプレースホルダーを設定する必要があります。

次のようになります。

<!-- layouts.master -->
<html>
    <head>
        <title>App Name - @yield('title')</title>
        <meta name="description" content="@yield('description')">
        <meta name="keywords" content="@yield('keywords')">
        <!-- etc -->
    </head>
    <body>
        ...
    </body>
</html>

そして、あなたのテンプレートは他のテンプレートを拡張する必要があります。

@extends('layouts.master')
@section('title')
{{trans('strings.About')}}
@stop
@section('description', 'Share text and photos with your friends and have fun')
@section('keywords', 'sharing, sharing text, text, sharing photo, photo,')
@section('robots', 'index, follow')
@section('revisit-after', 'content="3 days')

少なくとも、それは私が彼らのドキュメントを読む方法です: https://laravel.com/docs/5.2/blade

19
Adam Taylor

以下で説明するこれらすべての重要なタグを含むセクションを1つだけ作成できます。そして@yieldアプリレイアウトのこのセクション<head> HTMLコードのセクション。

@section('meta_tags')
    @if($obj)
        <title>{{$obj->title}} - {{env('SITE_URL', 'Site Name')}}</title>
        <meta name='description' itemprop='description' content='{{$obj->description}}' />
        <?php $tags = implode(',', $obj->tags); ?>
        <meta name='keywords' content='{{$tags}}' />
        <meta property='article:published_time' content='{{$obj->created_at}}' />
        <meta property='article:section' content='event' />

        <meta property="og:description" content="{{$obj->description}}" />
        <meta property="og:title" content="{{$obj->title}}" />
        <meta property="og:url" content="{{url()->current()}}" />
        <meta property="og:type" content="article" />
        <meta property="og:locale" content="en-us" />
        <meta property="og:locale:alternate" content="en-us" />
        <meta property="og:site_name" content="{{env('SITE_URL', 'Site Name')}}" />
        @foreach($obj->images as $image)
            <meta property="og:image" content="{{$image->url}}" />
        @endforeach
        <meta property="og:image:url" content="{{obj->image}}" />
        <meta property="og:image:size" content="300" />

        <meta name="Twitter:card" content="summary" />
        <meta name="Twitter:title" content="{{$obj->title}}" />
        <meta name="Twitter:site" content="@BrnBhaskar" />
    @endif
@endsection
6