spring-boot - 将几乎所有请求重定向到 index.html
问题描述
我正在创建一个 Web 应用程序,我使用 Vue 作为前端,使用 Spring Boot 作为后端。/
Spring Boot 在和处提供 index.html /index.html
,但我希望它也可以在其他 URL 处提供,例如/account
,这反过来将被 Vue 的路由器检测到并显示正确的页面。
此外,我还有一些我不想提供 index.html 的其他 URL。它们都以 开头/api
,这意味着这是 Vue 应用程序发送请求的地方。
任何帮助将不胜感激。谢谢。
解决方案
您要做的就是所谓的 SPA(单页应用程序)。为了实现这一点,您需要做两件事:
- 告诉 vue-router 使用 HTML5 历史推送:https ://router.vuejs.org/guide/essentials/history-mode.html#example-server-configurations
- 告诉 SpringBoot 在找不到相关路由时提供 index.html。这是关于如何使用 NoHandlerFoundException 的处理程序的一个很好的指南:https ://medium.com/@kshep92/single-page-applications-with-spring-boot-b64d8d37015d
我必须警告您:当您在第 1 步中配置历史模式时,单击某些东西,看起来您的 SPA 已经在工作(没有 # 号)。请注意,这是一种错觉。Vue-router 告诉浏览器 url 应该是什么样子,但是当你刷新页面时,服务器会返回 404。你还必须配置第 2 步。
推荐阅读
- java - Connect 4 check win方法抛出索引越界错误
- python - 在 Python 中使用堆的前 K 个常用词
- twilio - 收集后针对多个 Twilio 类型和自定义字段类型检查 Twilio 自动驾驶仪用户输入
- react-native - 如果项目位于 React Native 的状态数组中,那么在复选框中显示检查的正确方法是什么?
- azure - Airflow 无法从 Azure 存储中获取日志
- python - Python 中的新列
- c++ - 在 2d 游戏中控制玩家的更好方法?(sdl2)
- python - 在Pyspark中为分组中的N行计算2D多边形面积的有效方法
- reactjs - 'REACT_APP_API_BASE' 错误未被识别为内部或外部命令、可运行程序或批处理文件
- html - 尝试使用 HTML 和 CSS 在文本右侧对齐图像