路线上的区域设置不作为参数
Not working locale on route as parameter
我的路线有问题,当尝试访问主页时,出现错误:
"No route found for "GET /"
我的配置文件(app/config/config.yml):
parameters:
locale: en
framework:
#esi: ~
translator: { fallbacks: ['%locale%'] }
router:
resource: '%kernel.project_dir%/app/config/routing.yml'
strict_requirements: ~
default_locale: '%locale%'
我的路由文件(app/config/routing.yml)
web_client:
resource: "@DesktopBundle/Resources/config/routing_web.yml"
prefix: /{_locale}
defaults: { _locale: en}
requirements:
_locale: en|fr
我的路由第二个文件(src/Resources/config/routing_web.yml)
home_page:
path: /
defaults: { _controller: DesktopBundle:Website/HomePage:homePage}
我的操作:
public function homePageAction(Request $request)
{
return $this->render('DesktopBundle:Web:layout.html.twig', array());
}
当我尝试访问 base url 时出现 404 错误。
当然你会遇到 404 错误,AFAIU 你在路由前加上 _locale 然后用 home_page[= 读取你的资源文件24=] 数据,所以路由将是这样的:
example.com/en/ <- 然后你会得到你的主页,因为它匹配你的前缀 (/{_locale}/) 和主页路径 (/ )
要在进入 example.com 后获取 homePageAction,您需要将 routing.yml 中的主页路由移动到 web_client 上方。
编辑:
要重定向阅读此 doc
你需要这样的东西:
home_page:
pattern: /
defaults:
_controller: FrameworkBundle:Redirect:urlRedirect
path: /en
permanent: true
web_client:
resource: "@DesktopBundle/Resources/config/routing_web.yml"
prefix: /{_locale}
defaults: { _locale: en}
requirements:
_locale: en|fr
我的路线有问题,当尝试访问主页时,出现错误:
"No route found for "GET /"
我的配置文件(app/config/config.yml):
parameters:
locale: en
framework:
#esi: ~
translator: { fallbacks: ['%locale%'] }
router:
resource: '%kernel.project_dir%/app/config/routing.yml'
strict_requirements: ~
default_locale: '%locale%'
我的路由文件(app/config/routing.yml)
web_client:
resource: "@DesktopBundle/Resources/config/routing_web.yml"
prefix: /{_locale}
defaults: { _locale: en}
requirements:
_locale: en|fr
我的路由第二个文件(src/Resources/config/routing_web.yml)
home_page:
path: /
defaults: { _controller: DesktopBundle:Website/HomePage:homePage}
我的操作:
public function homePageAction(Request $request)
{
return $this->render('DesktopBundle:Web:layout.html.twig', array());
}
当我尝试访问 base url 时出现 404 错误。
当然你会遇到 404 错误,AFAIU 你在路由前加上 _locale 然后用 home_page[= 读取你的资源文件24=] 数据,所以路由将是这样的:
example.com/en/ <- 然后你会得到你的主页,因为它匹配你的前缀 (/{_locale}/) 和主页路径 (/ )
要在进入 example.com 后获取 homePageAction,您需要将 routing.yml 中的主页路由移动到 web_client 上方。
编辑: 要重定向阅读此 doc 你需要这样的东西:
home_page:
pattern: /
defaults:
_controller: FrameworkBundle:Redirect:urlRedirect
path: /en
permanent: true
web_client:
resource: "@DesktopBundle/Resources/config/routing_web.yml"
prefix: /{_locale}
defaults: { _locale: en}
requirements:
_locale: en|fr