Laravel 5.2 -元标记规范URL

cbeh67ev  于 2023-01-10  发布在  其他
关注(0)|答案(7)|浏览(141)

我正在尝试在我布局中集成元标记Laravel

    • 应用程序布局**
<title>SiRegala.it - @yield('title')</title>
<meta name="description" content="@yield('description')"/>
<link rel="canonical" href="@yield('canonical')"/>
    • 查看**
@section('title')
Homepage
@stop
@section('canonical') 
<?php echoURL::current(); ?>
@stop

我试图获取我的视图的当前URL,但实际上我得到这个错误:
未找到类'echoURL'
我怎么才能得到当前的网址?也许与刀片?我试图搜索一些解决方案与刀片,但我没有找到任何东西。
谢谢你的帮助!

9rygscc1

9rygscc11#

拉腊维尔5.7

<link rel="canonical" href="{{ url()->current() }}" />
4si2a6ki

4si2a6ki2#

您忘记在echoURL facade之间放置空格:

<?php echo URL::current(); ?>

此外,在Blade中,您通常希望避免使用<?php ?>

{{ URL::current() }}
7rtdyuoh

7rtdyuoh3#

是使用以下代码的另一种解决方案:
将其放入应用程序布局中,位于<head></head>节之间。

<link rel="canonical" href="{{ url(Request::url()) }}" />

你就能得到当前的URL地址

dw1jzc5e

dw1jzc5e4#

规范URL的目的是避免内容重复,至少要指定协议和域

<link rel="canonical" href="{{'https://example.com/' . request()->path()}}" />
pzfprimi

pzfprimi5#

使用以下代码代替
{{网址::当前()}}
“避免使用标记”

mznpcxlj

mznpcxlj6#

canonical必须包含完整路径,请用途:

request()->fullUrl()

您可以在blade中使用此代码,如下所示:

<link rel="canonical" href="{!! request()->fullUrl() !!}" />

不是这样的(因为htmlspecialchars的问题...):

<link rel="canonical" href="{{ request()->fullUrl() }}" />
rks48beu

rks48beu7#

这取决于你试图用规范语句达到什么目的。
这个问题暗示了自引用规范标记的生成--也就是说,规范标记精确地引用了正在提供服务的页面。
这对于规范页面(对于打算成为“主”页面的页面)来说是一个很好的实践--但是使用规范标签的愿望表明网站上可能有重复的页面。这些“重复”页面应该被标记为引用主页面或主页面,而不是它们自己。
即该问题仅解决了可能的问题的一部分。
我运行2个网站,基本上相同的内容,但在不同的品牌为不同的组织-所以我有重复的网页在不同的领域
Rejneesh上面的建议对我很有效,因为它可以设置为从一个域重定向到另一个域,而不必为每个页面硬编码链接。

<link rel="canonical" href="{{'https://example.com/' . request()->path()}}" />

对于其他类型的复制,您可能(将)需要找到一个更复杂的过程来自动链接到规范页面。

相关问题