gpt4 book ai didi

apache - 在 Symfony2 的配置中动态设置 BaseUrl

转载 作者:行者123 更新时间:2023-12-04 16:12:52 24 4
gpt4 key购买 nike

我知道在 Symfony2 的配置中,没有对基本 url 的引用,因为没有请求;该应用程序可以在 cli 或 Web 服务器中运行,因此我们不能依赖请求。但是,我仍然有要求样式表或 javascript 基本 url 的配置(例如 JQueryHelperBundle,您可以在其中设置 jquery 本地路径 - 作为本地 url)。问题是,有没有一种方法可以为配置动态设置基本 url,而无需更改它,以便:

  • 应用程序可以从任何正在开发的目录中移动,无论是 www/myproject 还是 www/foo/myproject,而无需更改设置
  • 除了会检测到用 apache 重写基本 url(虚拟主机很常见,其中基本 url 映射到 web 目录为“/”)之外,生产将工作相同。

  • 有没有办法获取该基本网址信息?将使用 $_SERVER['DOCUMENT_ROOT'] 之间的差异减去内核根目录是一种检测这种基本网址的方法吗?但是 virtualhost 将 url 重新定位到 web 目录上的/呢?硬编码基本 url 将项目完全耦合到它在开发中的位置,并且移动项目需要每次都更改基本 url,这很烦人。

    那么,有没有一种方法可以根据环境动态检测 Symfony2 配置中的基本 url,而不依赖于请求?

    最佳答案

    我必须在服务中这样做,所以我在自己的服务中注入(inject)了路由器服务,然后:

    $baseUrl = $router->getContext()->getHost();

    但我认为它更像是一种 hack,它是 Symfony2 框架的真正固定装置。例如,在 Controller 中,您可以轻松生成绝对 url(来自 symfony book 的示例):
    $router->generate('blog_show', array('slug' => 'my-blog-post'), true);

    在 Twig 模板中,您有 {{ url }} 功能

    我希望这有帮助

    关于apache - 在 Symfony2 的配置中动态设置 BaseUrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6381809/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com