Symfony2安装在子目录中

时间:2013-02-15 23:27:35

标签: php .htaccess symfony

我知道之前已经问过这个问题,但出于某种原因,这对我不起作用。

我正在尝试在子文件夹中安装symfony2(IE:http://www.mydomain.com/myapp),但是,我遇到了几个问题:

看起来我必须修改所有路由以指向此子路径,IE:

fos_user_group:
    resource: "@FOSUserBundle/Resources/config/routing/group.xml"
    prefix: /myapp/group

..它确实为路由做了工作。

然而,无论如何,即使在symfony文档中,它声明资产将确定正确的路径(http://symfony.com/doc/current/book/templating.html#linking-to-assets),它仍然试图从根域中找到资产,IE:

http://www.mydomain.com/bundles/acmedemobundle/js/script.js

我已经查看了谷歌上相关问题的每个链接,我已经尝试了RewriteBase /myappRewriteBase /myapp/web,但都无济于事。

任何人都可以帮助我吗?这似乎很难将正确地将我的URL和资产路由到子文件夹。为了便携性(即使资产问题以某种方式得到解决),如果不修改我的所有路线,是否应该有办法做到这一点?

另外,我还没有尝试在unix服务器上试试这个。目前,所有测试都在wampserver上完成。

3 个答案:

答案 0 :(得分:0)

您可以在路由器对象中设置基本网址,这可能会解决您的问题吗?

$this->getContainer()->get('router')->getContext()->setBaseUrl('/myapp');

如果这样做,则不必在所有路由前面加上子目录的名称。

答案 1 :(得分:0)

我不知道这对你来说是否仍然存在问题,但它可能有助于其他人。我相信你应该改变你的config.yml或config_dev.yml(取决于环境)

对于设置此资产的资产(请参阅“模板”部分):

framework:
router:
    resource: "%kernel.root_dir%/config/routing_dev.yml"
    strict_requirements: true
profiler: { only_exceptions: false }
#set default asset root
templating:
    assets_base_urls: 
        http: [ /path/to/web ]
        ssl:  [ /path/to/web ]

其中/ path / to / web是包文件夹的父文件夹。

答案 2 :(得分:0)

我在本地环境中的解决方案是在app/config/config.yml

中添加以下代码
framework:
    templating:
        assets_base_urls:
            http: "http://localhost/symfony_folder/"
            ssl: "http://localhost/symfony_folder/"