1

在 Symfony2 中配置一个包时,我需要从web文件夹设置 CSS 文件的静态路径,即config.yml中的一行:

content_css: "%path_to_web%/bundles/mybundle/css/styles.css"

%kernel.root_dir%返回绝对根服务器路径,但在这种情况下,获取文件夹虚拟路径的方法是什么?web是否有任何特殊变量,或者我是否需要对该路径进行硬编码?

4

2 回答 2

4

由于 Symfony 的目录结构是在标准版中定义的,而不是 Symfony2 框架中定义的,所以没有特殊的参数可以使用。

%kernel.root_dir%是通过__DIR__AppKernel类中使用来定义的。那应该用作基本路径,您可以执行以下操作:%kernel.root_dir%/../web/

于 2013-05-12T20:12:22.627 回答
4

你不需要额外的变量。Web 根目录是使用您的网络服务器配置定义的。这就是您配置content_css选项的方式。

如果您可以通过 简单地访问您的app.php(或app_dev.phphttp://www.example.com/app.php,那么所有资产都只是路径可达

content_css: "/bundles/mybundle/css/styles.css"

如果你已经暴露了整个 symfony 目录(严格不推荐)并且你app.php可以在 下访问http://www.example.com/web/app.php,那么只需在路径前加上/web.

content_css: "/web/bundles/mybundle/css/styles.css"

编辑:或者你在parameters.yml. 如果您阅读本文并将源代码存储在 git 或其他(强烈推荐)中,那么您将拥有一个paramaters.yml.distwith 默认值,并且每个系统(每个开发人员或生产服务器)都有自己的parameters.yml. 然后向你的和 prods 添加一个参数(以及一些默认值的 .dist ):

parameters:
    # [...] some other parameters
    my_web_root: "/myproject/web"

该选项看起来像

content_css: "%my_web_root%/bundles/mybundle/css/styles.css"
于 2013-05-13T11:51:58.997 回答