我知道在Symfony2的配置中,没有对基本URL的引用,因为没有请求;应用程序可以在cli中运行,也可以在Web服务器中运行,因此我们不能依赖请求。但是,我仍然有配置要求样式表或javascript基本URL(例如JQueryHelperBundle,您可以在其中设置您的jquery本地路径 - 作为本地URL)。问题是,有没有办法动态设置配置的基本URL,而不必更改它,以便:
有没有办法获得基本网址信息?使用$_SERVER['DOCUMENT_ROOT']
减去内核根目录之间的差异是否可以检测这样的基本URL?但是虚拟主机如何将网址重新定位到网页目录?对基本网址进行硬编码将项目完全耦合到开发中的位置,移动项目需要每次更改基本网址,这很烦人。
那么,有没有办法根据环境动态检测Symfony2配置中的基本URL,而不依赖于请求?
答案 0 :(得分:0)
我必须在服务中这样做,所以我在我自己的服务中注入了路由器服务,然后:
$baseUrl = $router->getContext()->getHost();
但我认为它更像是一个真正固定Symfony2框架的黑客。例如,在Controller中,您可以轻松生成绝对URL(例如,来自symfony书):
$router->generate('blog_show', array('slug' => 'my-blog-post'), true);
在树枝模板中,您拥有{{url}}功能
我希望这个帮助