例如,我有两个应用程序:'frontend'和'backend'。我想设置我的/ web目录,以便'/ web / frontend'服务'前端'资产,'/ web / backend'服务'后端'资产,而不必修改所有图像路径,等
答案 0 :(得分:1)
从Symfony Documentation开始,在每个应用程序的config.php中执行此操作应该可以[示例显示apps / backend / config / config.php]
sfConfig::add(array(
'sf_web_dir' => SF_ROOT_DIR.'/web/backend',
'sf_upload_dir' => SF_ROOT_DIR.'/web/backend'.sfConfig::get('sf_upload_dir_name'),
));
由于某种原因,此方法不起作用。如果你看一下sfConfig中定义的所有变量,你会注意到你必须更改sf_web_dir和sf_upload_dir以使事情正常工作。
一个选项是手动覆盖sfConfig中指向每个应用程序的config.php中的web目录的所有变量。要查看所有变量的列表,请尝试
<?php echo var_dump(sfConfig::getall()); ?>
你的另一个选择(我以前做过的方式)就是在Apache配置中做到这一点。后端的虚拟主机设置类似于
<VirtualHost *>
ServerName backend.dev
DocumentRoot "PATH_TO_SYMFONY_PROJECT/web/backend"
DirectoryIndex index.php
Alias /sf /usr/local/lib/php/data/symfony/web/sf
<Directory "/usr/local/lib/php/data/symfony/web/sf">
AllowOverride All
Allow from All
</Directory>
<Directory "PATH_TO_SYMFONY_PROJECT/web/backend">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
然后你需要将backend.php,backend_dev.php [以及可能的index.php,如果后端是你的默认环境]复制到/ web / backend,并在每个文件中更改
define('SF_ROOT_DIR', realpath(dirname(__FILE__).'/..'));
到
define('SF_ROOT_DIR', realpath(dirname(__FILE__).'/../..'));
你应该好。我更喜欢这种方法,但是如果您没有设置虚拟主机,则可能没有此选项。