本文概述
使用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"/>
评论前必须登录!
注册