奇怪...使用默认配置,路径/资产应该处理子目录。您是否尝试过开箱即用的 symfony 发行版?在本地主机上,我主要以这种方式使用它。你介意发布你的配置文件吗?
无论如何...对于资产路径,您可以尝试配置:
#config.yml
templating:
assets_base_urls: { http: "http://yoursite.com/dir1", ssl: "https://yoursite.com/dir1" }
(http://symfony.com/doc/current/reference/configuration/framework.html#assets-base-urls)
对于路由器,您应该阅读:http ://symfony.com/doc/current/cookbook/console/sending_emails.html#configuring-the-request-context-globally
它可以为您提供有关更改路由器上下文的一些想法,例如:
# app/config/parameters.yml
parameters:
router.request_context.host: example.org
router.request_context.scheme: http
router.request_context.base_url: my/path
无论如何 - 上下文是根据请求信息自动设置的。尝试调试:
$context = $this->getContainer()->get('router')->getContext();
// you should be mainly interested in:
$context->getBaseUrl();
可以轻松创建侦听器类,如果无论如何它是错误的,它将手动设置您的基本 url:
class RouterContextListener {
protected $router;
public function __construct(RouterInterface $router)
{
$this->router = $router;
}
public function onKernelRequest(Event $event)
{
$this->router->setBaseUrl('somedir');
}
}