我的路线有问题,当我尝试访问主页时,收到错误:
"未找到" 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());
}
当我尝试访问基本网址时出现404错误。
答案 0 :(得分:1)
当然你会有一个404错误,AFAIU你的路线前面加上 _locale ,然后用 home_page 数据读取你的资源文件,所以路线会像这样:
example.com/en / < - 然后您将获得您的主页,因为它与您的前缀(/ {_ locale} /)和主页路径(/)匹配
要在进入example.com后获取homePageAction,您需要在web.client上方的routing.yml中移动主页路由。
修改强> 重定向阅读此https://github.com/PhilipGarnero/django-rest-framework-social-oauth2 你需要这样的东西:
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