将元标记添加到 laravel 页面
Add meta tags to laravel page
我正在尝试向我的 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')
您要扩展另一个使用所有这些的模板吗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
您只能使用我在下面提到的所有这些重要标签创建一个部分。并且 @yield
此部分位于 HTML 代码的应用程序布局 <head>
部分。
@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
我有更好的!
像这样创建包含文件 'views/widgets/meta.blade.php'
<meta name="title" content="{{ $meta->meta_title }}"/>
<meta name="keywords" content="{{ $meta->meta_keywords }}"/>
<meta name="description" content="{{ $meta->meta_description }}"/>
<meta name="robots" content="index,follow"/>
<meta name="revisit-after" content="7 days">
<meta name="coverage" content="Worldwide">
<meta name="distribution" content="Global">
<meta name="title" content="{{ $meta->meta_title }}">
<meta name="author" content="{{ setting('site.title')}}">
<meta name="url" content="{{ request()->fullUrl() }}">
@isset($metaArray->og_image)
<meta name="og_image" content="{{ asset('storage/' . $meta->og_image) }}"/>
<meta name="og_secureImage" content="{{ asset('storage/' . $meta->og_image) }}"/>
<meta name="og_imageAlt" content="{{ $meta->og_imageAlt }}"/>
<meta name="og_imageType" content="{{ $meta->og_imageType }}"/>
@endisset
<meta name="rating" content="General">
<meta property=”og:title” content="{{ $meta->meta_title }}"/>
<meta property="og:description" content="{{ $meta->meta_description }}"/>
<meta property=”og:type” content=”{{ $meta->og_type }}”/>
<meta property="og:locale" content="en_us" />
<meta property="og:sitename" content="{{ setting('site.title') }}" />
<meta property="og:url" content="{{ request()->fullUrl() }}"/>
<meta name="twitter:card" content="summary"/>
<meta name="twitter:site" content="{{ setting('site.twitter_site') }}"/>
<meta name="twitter:creator" content="{{ setting('site.twitter_creator') }}"/>
然后每当你想包含元数据时,只需通过 include
传递数组
@include('widgets.meta',$meta)
您还可以将 setting() 替换为 $metaArray。我正在使用 Voyager。
我正在尝试向我的 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')
您要扩展另一个使用所有这些的模板吗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
您只能使用我在下面提到的所有这些重要标签创建一个部分。并且 @yield
此部分位于 HTML 代码的应用程序布局 <head>
部分。
@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
我有更好的! 像这样创建包含文件 'views/widgets/meta.blade.php'
<meta name="title" content="{{ $meta->meta_title }}"/>
<meta name="keywords" content="{{ $meta->meta_keywords }}"/>
<meta name="description" content="{{ $meta->meta_description }}"/>
<meta name="robots" content="index,follow"/>
<meta name="revisit-after" content="7 days">
<meta name="coverage" content="Worldwide">
<meta name="distribution" content="Global">
<meta name="title" content="{{ $meta->meta_title }}">
<meta name="author" content="{{ setting('site.title')}}">
<meta name="url" content="{{ request()->fullUrl() }}">
@isset($metaArray->og_image)
<meta name="og_image" content="{{ asset('storage/' . $meta->og_image) }}"/>
<meta name="og_secureImage" content="{{ asset('storage/' . $meta->og_image) }}"/>
<meta name="og_imageAlt" content="{{ $meta->og_imageAlt }}"/>
<meta name="og_imageType" content="{{ $meta->og_imageType }}"/>
@endisset
<meta name="rating" content="General">
<meta property=”og:title” content="{{ $meta->meta_title }}"/>
<meta property="og:description" content="{{ $meta->meta_description }}"/>
<meta property=”og:type” content=”{{ $meta->og_type }}”/>
<meta property="og:locale" content="en_us" />
<meta property="og:sitename" content="{{ setting('site.title') }}" />
<meta property="og:url" content="{{ request()->fullUrl() }}"/>
<meta name="twitter:card" content="summary"/>
<meta name="twitter:site" content="{{ setting('site.twitter_site') }}"/>
<meta name="twitter:creator" content="{{ setting('site.twitter_creator') }}"/>
然后每当你想包含元数据时,只需通过 include
传递数组@include('widgets.meta',$meta)
您还可以将 setting() 替换为 $metaArray。我正在使用 Voyager。