Я всегда использую meta.blade.php
и держать мой meta
отдельно от основного макета, а не только meta
, но и, styles
и scripts
, когда это возможно, и включают в себя то, используя @include(...)
, в любом случае, но как сделать его динамичным? В этом случае я использую подобный подход, как вы, но немного по-другому, что дает мне полную гибкость, чтобы сделать его реальной динамикой. Вот как я это делаю, вероятно, это ответит на то, что вы ищете здесь. Итак, давайте создадим файл «meta.blade.php» и мина приводятся ниже:
<!-- Title-->
<title>@yield('title', smart('site.title'))</title>
<!-- Meta-->
<meta name="keywords" content="@yield('keywords', getSiteMeta('keywords'))" />
<meta name="description" content="@yield('description', getSiteMeta('description'))" />
<meta name="author" content="@yield('author', getSiteMeta('author'))" />
<!-- CSRF for AJAX-->
<meta name="csrf-token" content="{{ csrf_token() }}" />
Уведомления @yield('keywords', getSiteMeta('keywords'))
так здесь; getSiteMeta
вспомогательная функция, которая объявлена в моем app\Helpers\Common.php
файл и функция выглядит следующим образом:
/**
* Prapare meta Tags by $name
*
* @param String $metaname Meta Name
* @return Meta Content
*/
function getSiteMeta($name)
{
return smart("site.meta.$name");
}
Также другая функция участвует здесь, что:
/**
* Short cut to config call for smart.php file items
* @param String $str Config Key
* @return String Config Value
*/
function smart($str)
{
return config("smart.$str");
}
На самом деле, у меня конфигурационный файл из моих собственных в config\smart.php
и smart
мое имя сайта, поэтому я сохранил все мои связанные с сайта конфиги в config\smart.php
, который выглядит следующим образом:
// config/smart.php
return [
'site' => [
'name' => 'Smart',
'title' => 'Smart Title',
'tagline' => 'Smart Tag Line',
'meta' => [
'keywords' => 'Smart Keywords',
'language' => 'english',
'description' => '...',
'author' => 'Sheikh Heera'
],
],
'role' => [
'default' => 'genaral', # By default, a user gets this role when registers.
'reserved' => 'superuser' # Application's Admin must have this role assigned.
],
// More...
];
Возможно, у вас есть идея, я могу позвонить smart('key_name')
, чтобы получить настройки моего сайта, поэтому мне не нужно использовать config('smart.key')
, и по умолчанию все значения meta
хранятся в моем файле config/smart.php
, поэтому, если я не использую раздел как это:
@section('keywords')
Some, Keywords, Here
@stop
Тогда я всегда мои настройки по умолчанию и с помощью вспомогательной функции getSiteMeta
у меня есть достаточно гибкости, чтобы изменить логику моей функции, например, я могу изменить источник по умолчанию моих meta
тегов и может построить его на лету.
Относительно https
это зависит от вашего сайта, если вы использовали обеспеченный URL (ssl/https
) и Request::url()
просто возвращает то, что ваш текущий URL является, поэтому, если это https
то вернет, что в противном случае вы получите http
.