我有几个网址如下:
{{domainID}}/action/{{userId}}/anotherAction
后一个URL指向:
http://localhost/viewA/{{domainID}}/action/{{userId}}/anotherAction
但是,如果我尝试从viewA
通过iframe加载viewB
,请viewA
中的链接而不是指向:
http://localhost/viewA/{{domainID}}/action/{{userId}}/anotherAction
它将指向:
http://localhost/viewB/{{domainID}}/action/{{userId}}/anotherAction
如果用户遵循后者,则用户将以404页面结束。
我的问题是:
无论如何要获得在树枝上建造的网址的绝对路径?
修改
路线定义是:
@Route("/domain/details/{domainId}", name="domain_detailed_view")
我试图通过这种方式获得绝对路径:
{{ url({{domainID}}/action/{{userId}}/anotherAction) }}
但是我收到了这个错误:
哈希键必须是带引号的字符串,数字,名称或表达式 括在括号中
答案 0 :(得分:57)
url
或path
函数采用路由名称,而不是路径。如果路由需要参数,则可以为其提供关联数组作为可选的第二个参数。
例如:
{{ url('domain_detailed_view', { 'domainId': domainId, 'userId': userId }) }}
答案 1 :(得分:7)
我知道它已经过时并且已经回答了,但是使用了symfony 3&你可以做的枝条:
{{ app.request.getSchemeAndHttpHost() }}
/* will match even port :) i.e.
* http://localhost:8000
* http://localhost
* http://example.com
*/
非常有帮助:D
答案 2 :(得分:5)
您有两种方法可以做同样的事情。
通常你可以使用url()
或absolute_url函数内的路径,如 absoulute_url(path(...))。请考虑以下事项:
// example 1:
{{ url('domain_detailed_view', { 'domainId': domainId, 'userId': userId }) }}
// example 2:
{{ absolute_url(path('domain_detailed_view', { 'domainId': domainId, 'userId': userId })) }}">
// note - those two do the same thing
通常,从Symfony 2.7开始,你可以将absolute_url()与断言和相对路径一起使用(相对于web / root文件夹)。这就是你如何使用它们来设置bundle和main web文件夹中图像的绝对路径:
[应用程序/ SRC / UserBundle /资源/公共/ IMG / image.jpg的]
<img src="{{ absolute_url(asset('bundle/user/img/image.jpg')) }}" /> // new way since 2.7 up
<img src="{{ asset('bundle/user/img/image.jpg', absolute: true ) }}" /> // old way below 2.7 removed in symfony 3.0
[幅/ CSS / IMG / some.jpg]
<img src="{{ absolute_url('css/img/some.jpg') }}" />
这是symfony建议在呈现电子邮件视图时使用的内容。 http://symfony.com/doc/current/email.html