繁体   English   中英

Symfony2安装在子目录中

[英]Symfony2 installing in a sub-directory

我知道之前曾有人问过这个问题,但由于某种原因,它对我不起作用。

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

看来我必须修改所有路由以指向此子路径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

我已经在Google的每个链接中寻找了相关的问题,我尝试了RewriteBase /myappRewriteBase /myapp/web ,但都无济于事。

有人可以帮我从这里出去吗? 正确地将我的URL和资产路由到子文件夹似乎很疯狂。 出于可移植性考虑(即使资产问题已通过某种方式解决),是否应该有办法在不修改我所有路线的情况下做到这一点?

附带一提,我还没有尝试在UNIX服务器上尝试此操作。 当前,所有测试都在wampserver上进行。

您可以在路由器对象中设置基本网址,也许可以解决您的问题?

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

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

我不知道这是否仍然适合您,但可能会对其他人有所帮助。 我认为您应该更改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是捆绑文件夹的父文件夹。

我在本地环境上的解决方案是在app/config/config.yml添加以下代码

framework:
    templating:
        assets_base_urls:
            http: "http://localhost/symfony_folder/"
            ssl: "http://localhost/symfony_folder/"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM