Symfony 3路线+ VueJS的index.html,F5降至404

时间:2017-08-18 08:22:03

标签: symfony vue.js

我尝试将Vue.js与Symfony 3连接,但不知道如何为它创建正确的路由配置。 项目树看起来像这样:

Project root
  - app/
    - Resources/
      - views/
        - default/
  - web/
    - assets/
    - static/
    index.html     // here Vue is included

从Symfony我提供了一些REST API,到它的路由以/ api /为前缀。我在Vue SPA有一些路线。 问题是如果我在浏览器中按任何Vue路由上的F5,当然这不包括在我的routing.yml中,浏览器从Symfony返回404错误。 一个半工作的决定是当我将index.html的内容放入Resourses / views / default / twig时使用这样的路径:

fallback_for_vue:
    path: /{req}
    defaults: { _controller: 'AppBundle:Default:index' }
    requirements:
        req: ".+"

taken from another question,但这实际上并不是我需要的,因为我不希望我的前端程序员去除 web / 文件夹之外的某个地方。 那么我应该使用哪种Symfony路由配置?

1 个答案:

答案 0 :(得分:0)

您需要通配符地址指向您的Vue.js应用程序。否则,当您重新加载时,您向Symfony发送请求,并且它不知道如何处理它。




  vuejs_wildcard_route:
默认值:{_ control:AppBundle:YourController:yourAction}
路径:/ vuejsappbasepath / {whatever}
要求:
无论如何:。*
默认值:
无论如何:null
  




我将这个设置与reactjs应用程序配合使用并且工作正常。


&#xA ;

YourController是包含yourAction的控制器,使用Vue.js面板加载模板。