个性化阅读
专注于IT技术分析

如何使用Twig获取路径,实际路由和主机域的规范URL

本文概述

使用twig, 你可以使用path标记生成一个url, 但是此函数仅生成指向你资源的相对路径。

{{path("myroute_edit", {"id":4})}} 
{# Outputs: 
  /myroute/edit/4
  But wheres my domain :( ?
#}

但是有时候, 相对路径不仅是我们所需要的(尽管可以重定向到另一个路径), 例如, 为了优化SEO, 你可能会处理规范的url。

具有规范网址的服务器和路由

要检索你域的规范路径(包括协议), 请使用:

{{app.request.getSchemeAndHttpHost()}}

然后, 例如, 如果你需要资源(图像)的规范路径, 则可以使用:

<img src="{{app.request.getSchemeAndHttpHost()}}{{asset('path-to/image.png')}}" />

{# or #}

{% set domain = app.request.getSchemeAndHttpHost() %}
{% set filepath = asset('path-to/image.png')%}

<img src="{{domain ~ filepath}}" />

{# that should ouput something like #}

<img src="http://ourcodeworld.com/path-to/image.png" />

如果你需要检索路线的规范网址, 请使用:

{% set domain = app.request.getSchemeAndHttpHost() %}
{% set route = path('myroute_identifier')%}

<a href="{{domain ~ route}}">Go to my route</a>

实际网址

要使用twig生成实际的网址, 请使用:

{{ url(app.request.attributes.get("_route"), app.request.attributes.get("_route_params")) }}

例如, 要优化seo, 你应添加

<meta property="og:url" content="{{ url(app.request.attributes.get("_route"), app.request.attributes.get("_route_params")) }}"/>

{#For example for the actual article, the path should be #}

<meta property="og:url" content="http://ourcodeworld.com/articles/read/105/how-to-get-the-canonical-url-of-a-path-actual-route-and-host-domain-with-twig"/>
赞(0)
未经允许不得转载:srcmini » 如何使用Twig获取路径,实际路由和主机域的规范URL

评论 抢沙发

评论前必须登录!