Symfony2,Backbone和Pushstate

时间:2013-07-12 19:56:57

标签: symfony backbone.js pushstate

我将symfony2 routing.yml用于呼叫主页:

web_homepage:
    pattern:  /
    defaults: { _controller: SWebBundle:Default:index }

在这个页面中我调用Require,Backbone,使用PushState,一切正常,但是,如果有一个用户去,例如:

example.com / categories / animals

复制此网址并直接访问,Symfony2返回404

对于很多调用我使用了'/ config / ...'和'/ api / ...'模式,并且登录/ login_check

好吧,我想如果在路由中没有出现的所有调用都存在任何参数'default',或者排除config和api,因为我们是来自backbone.js的控制器404。

谢谢^^

1 个答案:

答案 0 :(得分:1)

这是我对Symfony 2.3.2的解决方案:

<强> routing.xml

<routes>
    <route id="MyBundle.Default.index" path="/app">
        <default key="_controller">MyBundle:Default:index</default>
    </route>
    <route id="MyBundle.Default.index2" path="/app/{url}">
        <default key="_controller">MyBundle:Default:index</default>
        <requirement key="url">.+</requirement>
    </route>
</routes>

<强>控制器:

class DefaultController extends Controller
{
    public function indexAction()
    {
        return $this->render('MyBundle:Default:index.html.twig');
    }
}

原因https://stackoverflow.com/a/7892022我使用的原因是:

<requirement key="url">.+</requirement>