0

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

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

看起来我必须修改我的所有路由以指向这个子路径,即:

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 上进行。

4

3 回答 3

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 是 bundle 文件夹的父文件夹。

于 2014-07-12T23:34:18.353 回答
0

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

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

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

于 2013-02-16T00:16:00.287 回答
0

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

framework:
    templating:
        assets_base_urls:
            http: "http://localhost/symfony_folder/"
            ssl: "http://localhost/symfony_folder/"
于 2016-05-11T16:04:22.703 回答