我想使用 FOSJsRoutingBundle 为 Symfony 生成绝对网址。这基本上就是我所做的:
Routing.generate("route_name", {}, true);
会产生类似http://localhost/my/route
的网址。无论环境如何,主持人都是localhost
。
如果我希望路径反映当前配置,我该如何处理?
我无法在文档中找到任何相关内容,也无法明确定义host
的{{1}}属性。
答案 0 :(得分:0)
要根据当前环境生成绝对网址,请按照以下文档确保您的FOSJsRoutingBundle设置正确:https://github.com/FriendsOfSymfony/FOSJsRoutingBundle/blob/master/Resources/doc/index.md
另外,请不要忘记在下面添加脚本(在包含路由和Routing
对象的js文件之后)。
<script src="{{ path('fos_js_routing_js', {"callback": "fos.Router.setData"}) }}"></script>
这实际上是一小段javascript,它将动态设置Routing
的配置。
答案 1 :(得分:0)
主机在您的路线中定义 因此,如果您想要除 localhost 之外的其他内容,请将主机添加到您的路线中。
route_name:
pattern: /my/route
defaults:
_controller: MyBundle:Default:index
options:
expose: true
schemes: [https]
host: vhost.local
然后你会得到:https://vhost.local/my/route 用:
Routing.generate("route_name", {}, true);
如果您想更改索引页面,请在配置中添加此内容
fos_js_routing:
request_context_base_url: /app_dev.php
除了上面的主持人之外,这将呈现:
https://vhost.local/app_dev.php/my/route