在Symfony2中配置一个捆绑包时,我需要设置一个来自web
文件夹的CSS文件的静态路径,即来自 config.yml 的一行:
content_css: "%path_to_web%/bundles/mybundle/css/styles.css"
%kernel.root_dir%
返回绝对根服务器路径,但在这种情况下,获取虚拟路径到web
文件夹的方式是什么?是否有任何特殊变量或我是否需要对该路径进行硬编码?
答案 0 :(得分:4)
由于Symfony的目录结构是在Standard Edition而不是Symfony2框架中定义的,因此没有特殊参数可供使用。
%kernel.root_dir%
是使用__DIR__
类中的AppKernel
定义的。这是应该用作基本路径的那个,您可以执行以下操作:%kernel.root_dir%/../web/
答案 1 :(得分:4)
您不需要额外的变量。 Web根目录是使用您的Web服务器配置定义的。这就是配置content_css
选项的方式。
如果您可以通过app.php
与app_dev.php
(或http://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
中的参数。如果您阅读this并将源存储在git或其他(强烈推荐)中,那么您有paramaters.yml.dist
默认值,并且每个系统(每个开发人员或生产服务器)都有自己的{{1} }}。然后为你的和prods添加一个参数(还有一些默认的.dist):
parameters.yml
该选项看起来像
parameters:
# [...] some other parameters
my_web_root: "/myproject/web"