【问题标题】:Inject meta tags per page每页注入元标记
【发布时间】:2018-04-22 02:38:37
【问题描述】:

所以我运行了一个 Laravel 5.4 项目,我们有一个系统,每个页面都需要单独的 META 标签才能正确显示人们何时发布 url 等。所以我的问题:

如何将以下代码注入到我的 head 标签中?

例如一篇新文章可能如下所示:

<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@mysite">
<meta name="twitter:title" content="News Article - Donald Trumps Twitter Deleted!">
<meta name="twitter:image" content="imageurl">
<meta name="twitter:description" content="Donald Trump lost access to his twitter for...">
<meta name="twitter:domain" content="https://www.example.com">
<meta name="description" content="Donald Trump lost access to his twitter for..."/>
<meta name="keywords" content="News, Donald, Trump, Media, Reporting, Urgent, Breaking, Twitter"/>

.

而论坛帖子看起来像这样:

<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@mysite">
<meta name="twitter:title" content="Forum - Welcome to the forum!">
<meta name="twitter:image" content="imageurl">
<meta name="twitter:description" content="Hey there and welcome to our forum! For the chance to win $250 please...">
<meta name="twitter:domain" content="https://www.example.com">
<meta name="description" content="Hey there and welcome to our forum! For the chance to win $250 please..."/>
<meta name="keywords" content="Forum, Thread, Post, Win, Welcome, Twitter"/>

.

那么,怎么做?花了一个小时搜索这个,我很困惑!

【问题讨论】:

    标签: html laravel-5 meta-tags laravel-blade


    【解决方案1】:

    查看有关模板继承的 laravel 文档 (https://laravel.com/docs/5.2/blade#template-inheritance)

    您可以通过在刀片中使用 @section('title',$article-&gt;title) 将元数据注入您的 &lt;head&gt;&lt;/head&gt;

    您的情况示例:

    <head>
        <meta name="twitter:title" content="@yield('twitter_title')">
        <meta name="twitter:image" content="@yield('twitter_image')">
    </head>
    

    在你的刀片中:

    @extends('layouts.layout') //This loads the default blade with your <head></head> section
    
    @section('twitter_title',$article->title)
    @section('twitter_image',$article->image)
    

    【讨论】:

    • 所以我添加了如上所示的代码。我在 layout.blade.php 文件中放入了第一个盒子(头部和元数据)。第二点,我进入了 home.blade.php 文件。它似乎没有通过。似乎没有将我 home.blade.php 中 @section 的数据附加到我的 layout.blade.php 中。
    • 您能提供您创建的代码吗?你有任何错误吗?编辑:我猜你已经将你的 layout.blade.php 加载到你的 home.blade.php 中:@extends('layouts.layout')(其中 layouts 是你的文件夹,其中包含 layout.blade.php
    • 我错过了这一步。现在有点工作,但是现在,它要求我在 layout.blade.php 文件中提供不同的变量,例如$ip $port $default_css 要在 home.blade.php 文件中定义,肯定有办法让它继续读取另一个文件吗?
    • 嗯好吧,这些“缺失”的变量是在你的 home.blade.php 中定义的?你应该阅读这个关于刀片的文档laravel.com/docs/5.4/blade 这样你就可以看到你是否以正确的顺序使用 laravel 组件和@sections
    • 所以缺少的变量没有在我的 home.blade.php 中定义,它们是超出 标签的变量。它们是 标签中 layout.blade.php 内容的一部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    • 2014-11-20
    相关资源
    最近更新 更多