Symfony Twig-获取规范标记的URL

Symfony Twig-获取规范标记的URL,symfony,twig,canonical-link,Symfony,Twig,Canonical Link,我希望在我的应用程序中创建一个动态rel=“canonical”标记,该标记可以拉入当前URL,但希望确保删除任何查询参数。例如,应该有规范的as,因此{{{app.request.uri}不起作用,因为它也拉入?page=2 有人知道如何在没有查询参数的情况下拉入页面的绝对路径吗?我刚刚尝试转储baseUrl,可以确认它不起作用 但是,这种方法有效: {{ app.request.getSchemeAndHttpHost ~ app.request.baseUrl ~ app.request.

我希望在我的应用程序中创建一个动态rel=“canonical”标记,该标记可以拉入当前URL,但希望确保删除任何查询参数。例如,应该有规范的as,因此
{{{app.request.uri}
不起作用,因为它也拉入
?page=2


有人知道如何在没有查询参数的情况下拉入页面的绝对路径吗?

我刚刚尝试转储
baseUrl
,可以确认它不起作用

但是,这种方法有效:

{{ app.request.getSchemeAndHttpHost ~ app.request.baseUrl ~ app.request.pathInfo }}
我知道,它不漂亮,但它确实起作用:)

这会有用的

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

我认为这是不可能的(也许我错了),但是你可以编写一个分支扩展,通过
字符来拆分
app.request.uri
。char…我刚刚记得有
app.request.baseUrl
。你试过了吗?+1没有试过,但这似乎是一个很好的解决方案:)路由参数中没有提供查询字符串吗?@SteveBuzonas,没有,它只是根据当前路由名称和参数生成url。如果你有额外的查询字符串,你需要自己在404页面中添加它。如果你扩展了该代码所用的模板,请确保将其放入If块中,否则404页面将变成500页面,因为route不存在。这就像sin一样丑陋,但它仍然可以在Symfony 4.4中完成任务。谢谢这就是我所寻找的,上面的解决方案不包括参数生成的url。