Php 在Symfony2中的config.yml中寻址web路径

Php 在Symfony2中的config.yml中寻址web路径,php,symfony,Php,Symfony,在Symfony2中配置一个bundle时,我需要设置从web文件夹到CSS文件的静态路径,即config.yml中的一行: %kernel.root\u dir%返回绝对根服务器路径,但在这种情况下,如何获取web文件夹的虚拟路径?是否有任何特殊变量,或者我需要硬编码该路径?由于Symfony的目录结构是在标准版中定义的,而不是在Symfony2框架中定义的,因此没有特殊参数可供使用 %kernel.root\u dir%是通过在AppKernel类中使用\u dir\u定义的。这是应该用作基

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


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

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


%kernel.root\u dir%
是通过在
AppKernel
类中使用
\u dir\u
定义的。这是应该用作基本路径的路径,您可以执行如下操作:
%kernel.root\u dir%/../web/

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


%kernel.root\u dir%
是通过在
AppKernel
类中使用
\u dir\u
定义的。这是应该用作基本路径的路径,您可以执行如下操作:
%kernel.root\u dir%/../web/

您不需要额外的变量。web根目录是使用web服务器配置定义的。这就是配置
内容\u css
选项的方式

如果您可以通过
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
中的参数。如果您阅读并将源代码存储在git或其他(强烈推荐)格式中,那么您有一个默认的
paramaters.yml.dist
,每个系统(每个开发人员或生产服务器)都有自己的
parameters.yml
。然后将一个参数添加到您的和产品中(以及带有一些默认值的.dist):

这个选项看起来像

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

您不需要额外的变量。web根目录是使用web服务器配置定义的。这就是配置
内容\u css
选项的方式

如果您可以通过
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
中的参数。如果您阅读并将源代码存储在git或其他(强烈推荐)格式中,那么您有一个默认的
paramaters.yml.dist
,每个系统(每个开发人员或生产服务器)都有自己的
parameters.yml
。然后将一个参数添加到您的和产品中(以及带有一些默认值的.dist):

这个选项看起来像

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

不幸的是,我无法控制该扩展捆绑包的标记呈现,因此使用该扩展捆绑包时,标记似乎变成了
。不幸的是,我无法控制该扩展捆绑包的标记呈现,因此,标记似乎变成了
web
文件夹的虚拟路径通常是网站的根目录,对吗?或者你是说别的什么?@cheesemacfly我指的是指向web路径的URL,比如
web
文件夹的虚拟路径通常是网站的根目录,对吗?或者你指的是别的什么?@cheesemacfly我指的是指向web路径的URL,比如。在本地主机上,我在某个文件夹下测试我的项目,因此路径看起来像
http://localhost/myproject/web/app_dev.php
。将项目移动到web后,路径看起来像
http://www.example.com/web/app_dev.php
。这意味着我需要在发布项目后手动更改根目录。在这里,我试图找到一种在发布后不更改配置的替代方法。首先,不要将整个symfony目录公开给web。配置指向
web/
目录的DocumentRoot!然后在本地计算机上使用相同的配置,主机名在
/etc/hosts
中,以区别不同的项目。在本地主机上,我在特定文件夹下测试我的项目,因此路径看起来像
http://localhost/myproject/web/app_dev.php
。将项目移动到web后,路径看起来像
http://www.example.com/web/app_dev.php
。这意味着我需要在发布项目后手动更改根目录。在这里,我试图找到一种在发布后不更改配置的替代方法。首先,不要将整个symfony目录公开给web。配置指向
web/
目录的DocumentRoot!然后在本地计算机上使用相同的配置,主机名位于
/etc/hosts
中,以区别不同的项目。