在 Symfony2 的配置中动态设置 BaseUrl

2024-02-07

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

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

有没有办法获取该基本 url 信息?会使用之间的差异$_SERVER['DOCUMENT_ROOT']减去内核根目录是检测此类基本网址的方法吗?但是,虚拟主机将 url 重新设置为 Web 目录上的 / 又如何呢?对基本 url 进行硬编码将项目与开发中的位置完全耦合起来,并且移动项目需要每次都更改基本 url,这很烦人。

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


我必须在服务中执行此操作,因此我将路由器服务注入到我自己的服务中,然后:

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

但我更多地认为它是一种 hack,而不是 Symfony2 框架的真正固定装置。例如,在 Controller 中,您可以轻松生成绝对 url(来自 symfony 书中的示例):

$router->generate('blog_show', array('slug' => 'my-blog-post'), true);

在 twig 模板中,您有 {{ url }} 函数

我希望这有帮助

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Symfony2 的配置中动态设置 BaseUrl 的相关文章

  • Tomcat 8 上的 PHP

    我找到了很多如何让 PHP 在 Tomcat 上运行的指南 但都是以前的版本 我尝试了所有这些 但我所能显示的只是一个空白页面 并且代码仍然没有被触发 我知道 Tomcat 是为 Java 应用程序而不是 PHP 构建的 但我需要找到一种使
  • 如何在 PHP 中检查不完整的 POST 请求

    当连接速度较慢的远程 Web 客户端无法发送完整的 POST 请求时 我遇到了问题multipart form data内容 但 PHP 仍然使用部分接收到的数据来填充 POST大批 结果一个值 POST数组可能不完整 并且可能会丢失更多值
  • Django 与 mod_wsgi 在 apache - 500 错误:Authtype 未设置?

    尝试在 Dreamhost 上部署我的第一个 django 站点 我的这个工作正常 然后我不确定我做了什么让它停止工作 这是错误消息 crit client 74 72 99 26 configuration error couldn t
  • Internet Explorer 8 + 放气

    我有一个非常奇怪的问题 我真的希望有人能给出答案 因为我不知道还能去哪里问 我正在用 C 编写一个 cgi 应用程序 它由 Apache 执行并输出 HTML 代码 我自己在 C 应用程序中压缩 HTML 输出 因为我的 Web 主机由于某
  • 从 Symfony2 中的服务重定向

    我有一项查找页面数据的服务 但如果找不到该数据 则应重定向到主页 对于我的一生 我不知道如何在 Sf2 中做到这一点 有很多不同的方法可以使用服务和路由器 但似乎都不起作用 namespace Acme SomeBundle Service
  • Tomcat 托管具有多个 SSL 证书的多个虚拟主机

    例如 我有一台使用 Tomcat 7 托管多个网站的服务器 a abc com b abc com c def com d def com 使用tomcat的虚拟主机功能 因此它们各自可能属于不同的webapps文件夹 我们现在正在尝试为每
  • SSE(EventSource):为什么不超过6个连接?

    我想看看在我的机器超载之前我可以设置多少个并发 SSE 又名 EventSource 连接 但使用 Firefox Firefox 18 或 Firefox 20 进行测试时 它在 6 个连接处停止 附加连接没有给出错误 但不发送任何数据
  • 在 htaccess 文件中使用 RewriteMap

    如何在 htaccess 文件中使用 RewriteMap 指令 当我把它放在那里时 我收到 此处不允许 RewriteMap 错误 我知道当将其放入 httpd conf 或虚拟主机配置文件中时 此错误将会消失 但我想知道是否可以将其放入
  • 将应用程序级别用户名/用户 ID 注入 nginx/Apache 日志

    有没有办法将应用程序级别的用户名或 id 在本例中为 django 用户名或 id 注入 Apache 或 ngnix 日志中 请注意 我不是询问 HTTP 身份验证用户名 我目前正在使用一个简短的自定义中间件将此数据添加到响应标头 如下所
  • PHP UTF-8 配置

    我正在使用 PHP 5 3 5 配置 Apache 2 2 17 服务器 我的目标是创建一个默认为内容类型的干净配置UTF 8 php ini default charset UTF 8 default mimetype applicati
  • Symfony2:twig 中的 form_widget 调用抛出异常“可捕获的致命错误......必须是 Symfony\Component\Form\FormView 的实例”

    当我在控制器操作中创建一个表单时 如下所示 form this gt createFormBuilder gt add field name gt getForm return array form gt form 我尝试在树枝模板中渲染此
  • Symfony 2.7 / 3 - Doctrine:您请求了一个不存在的服务“fos_user.doctrine_registry”

    今天做作曲家更新时突然出现以下错误 Symfony Component DependencyInjection Exception ServiceNotFoundException 您请求了一项不存在的服务 fos user doctrin
  • Symfony StreamedResponse 服务器发送事件阻止请求

    我在 Symfony 中使用 StreamedResponse 实现了服务器发送事件 SSE 因此 当事件发生时 会话中会保存一条消息 该消息将通知给用户 问题是 当执行包含客户端代码的页面时 它会阻止对应用程序的所有 Web 请求 直到
  • mod_rewrite 有例外

    为了将我的服务器上的每个请求重定向到我使用的安全连接 RewriteCond SERVER PORT 80 RewriteRule https mywebsite com 1 R L 效果完美 但是我需要两条路径不被重定向 说我什么时候访问
  • 创建动态子域

    自从我考虑一些网站正在实施的此功能以来已经有一段时间了 它看起来非常成功 类似的网站tumblr com blogger com wordpress com允许用户使用简单的 HTML PHP 表单从网站内注册新的子域名 以我目前对 PHP
  • 如何找到 httpd.conf 文件所在的位置?

    如何找到 apache PHP 上 httpd conf 文件的路径 我不知道我的脚本是否会在Windows apache或Linux中运行 我需要知道在哪里可以找到这个文件 以便从那里找到参数 谢谢 我认为它没有接触 PHP 跑步http
  • cursorMark是无状态的以及它如何解决深度分页

    作为指定here https cwiki apache org confluence display solr Pagination of Results光标标记是无状态的 但我不明白它是如何解决无状态的深度分页问题的 solr 是否按唯一
  • 在应用程序内核中找不到 FOSUserBundle

    我在 Windows 上使用 symfony 并尝试按照官方文档中的描述配置 FOSUserBundle 尝试更新架构时出现此错误 Class FOS UserBundle FOSUserBundle not found in app Ap
  • Symfony 3新建项目报错

    我开始编写有关 Symfony 3 的教程 在使用以下命令创建新项目时遇到问题 php symfony phar new Symfony 我有这个错误 GuzzleHttp Exception RequestException Error
  • 为什么Apache MPM prefork.c 使用互斥体来保护accept()?

    我坐下来读书Apache 的 MPM prefork c http code metager de source xref apache httpd server mpm prefork prefork c这段代码使用了一个名为accept

随机推荐