我知道之前已经问过这个问题,但出于某种原因,这对我不起作用。
我正在尝试在子文件夹中安装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 /myapp
,RewriteBase /myapp/web
,但都无济于事。
任何人都可以帮助我吗?这似乎很难将正确地将我的URL和资产路由到子文件夹。为了便携性(即使资产问题以某种方式得到解决),如果不修改我的所有路线,是否应该有办法做到这一点?
另外,我还没有尝试在unix服务器上试试这个。目前,所有测试都在wampserver上完成。
答案 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/"