我需要在生产服务器上的嵌套目录中部署一个 Symfony 2 项目。实际上,这意味着所有 URL 都以 /subdirectory/ 路径为前缀,即
http://host.com/subdirectory/project/web/app.php/survey
Run Code Online (Sandbox Code Playgroud)
我不需要 URL 重写,也不打算设置它。该应用程序应仅在通过上述 URL 访问时工作。
我的问题是,所产生的各个环节path和asset嫩枝功能是相对于服务器的根目录(/),而不是子目录中的项目是(/子目录/)。Symfony 2 中是否有任何配置参数可以全局覆盖相对路径?
我试图通过添加 HTML 标签来解决这个问题,但它不适用于链接。
更新:我欠你更多细节。我正在运行带有 mod_rewrite 版本的 IIS,因此您的部分建议可能仍然有效。
更新:理想情况下,我希望看到一个在 AppKernel 对象上设置根目录的解决方案 - 方法AppKernel::setRootDir()是否存在以补充现有的AppKernel::getRootDir().
查看 app/config/routing.yml ,您可以在其中从包中导入路由。该文件中的记录类似于以下内容:
somename:
resource: "@YourBundle/Resources/config/routing.yml"
prefix: /
Run Code Online (Sandbox Code Playgroud)
您可以在前缀中添加您的子目录,例如prefix: /subdirectory
然后所有生成的 URL 将包含subdirectory.