这是我的master.blade.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>@yield('title')</title>
<meta name="description" content="@yield('meta_desc')">
如果我将此扩展到不会给出meta_desc
的页面:
@extends('layouts.index')
@section('title')
A nice title
@endsection
此页面在标题中有一个带有空描述的元标记
<meta name="description" content="">
但是,当没有给出meta_desc时,我想完全跳过元标记。我尝试将master.blade.php
中的代码更改为
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>@yield('title', )</title>
@if(!empty($meta_desc))
<meta name="description" content="@yield('meta_desc')">
@endif
但随后是元标记
<meta name="description" content="">
总会丢失。我该如何解决?
答案 0 :(得分:1)
你可以做这样的事情
master.blade.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>@yield('title')</title>
@if($metaDesc != "")
<meta name="description" content="{{ $metaDesc }}">
@endif
控制器
$metaDesc = "Testing";
return view('test', compact('metaDesc'));
test.blade.php
@extends('layouts.master')
@section('title', 'Testing')
@section('content')
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aspernatur consectetur eligendi esse id praesentium ullam! Alias asperiores, consectetur delectus, dicta facilis impedit itaque iure magni nisi odio perferendis tenetur ut!
@endsection
基本上我所做的就是将元描述变量传递给主布局,如果变量是“”,那么我们根本不会显示<meta>
..
如果有任何疑问,请随时联系。