我目前正在编写一个应用程序,使用SF3作为后端,VueJs作为前端。
我使用带有基本路径'/'的控制器动作来渲染主模板(带有twig),其中包含js文件的链接和VueJs的div绑定。
Vuejs应用程序是一个单页应用程序并使用vue-router。 vue-router模式在生产模式下设置为历史记录,这就是我遇到问题的地方。 dev配置使用哈希没有任何问题。
我想配置我的nginx以便:
- 检查它是否与vuejs路线匹配
- 如果没有检查它是否与symfony路线匹配
- 如果没有,则重定向到某些404页面
醇>
1和2可以恢复。
我当前的nginx位置是(默认的symfony):
`location / {
try_files $uri /app.php$is_args$args;
}`
问题是当我在浏览器中重新加载vuejs路由时,我收到404错误。但是,导航到路线的路线工作正常。
如果有帮助,我的所有symfony路由都以API /或admin /
作为前缀提前感谢任何指导。
分辨
我在symfony配置中添加了“后备”路由:
fallback:
path: /{req}
defaults: { _controller: 'AppBundle:Default:index' }
requirements:
req: ".+"
现在,每个未定义的url都会重定向到呈现VueJS应用的操作。如果url不管理已知的vue-router路由,则还会在vue-router中定义回退路由。