如何在没有模板引擎的情况下构建 SPA Spring 应用程序
Posted
技术标签:
【中文标题】如何在没有模板引擎的情况下构建 SPA Spring 应用程序【英文标题】:How to build SPA Spring applications without template engines 【发布时间】:2018-07-03 06:38:46 【问题描述】:出于好奇,尝试构建一个 SPA react spring boot 应用程序,省略 jsp 或 thymeleaf 等模板引擎,因为据我所知,至少在某些情况下,值得将前端和后端解耦。设法编写返回原始 json 的控制器并且未能添加返回带有反应脚本的 html 模板的控制器,就像我在 thymeleaf 包含在依赖项中并且所有 html/js/css 文件都在资源文件夹中时所做的那样。我应该运行额外的节点服务器返回文本/html吗?你能给我一些示例项目吗? 基本上我想要一个带有导航栏的应用程序,带有链接 /index /something1 /something2 等,以及带有常见 html 页眉页脚的单独 SPA。
【问题讨论】:
顺便说一句,当我卷曲此 url swapi.co/api/people/1 时,我得到了 application/json 内容类型但是当我在浏览器中打开它时,我看到呈现的 html 页面而不是原始 json。怎么可能呢? 如果您可以跳过服务器端渲染,那么它应该很简单。您的后端将通过 ajax 通信简化为 JSON-feeder 和身份验证管理。 @Kunukn 我可以使用 ajax 来更新页面。但是,如果我的所有控制器都只返回 json,如何显示除原始 json 之外的其他内容?我应该在哪里指定在某个 url 上显示哪个视图? 【参考方案1】:您可以让控制器为您的前端服务,不需要节点服务器,除非您需要服务器端渲染。
示例教程:https://spring.io/guides/tutorials/react-and-spring-data-rest/
【讨论】:
Thymeleaf 模板引擎用于渲染 index html 页面。所以我别无选择?一堆控制器返回原始 json 和一堆返回带有 jsp/thymeleaf 的 html 模板? 不行,百里香在这里没用,你可以跳过。 没有百里香叶返回视图失败。而且我还必须将所有 html css js 文件保存在资源文件夹中? 默认情况下,静态资源来自/static
文件夹doc
我也发现在该示例中包含 Thymeleaf 很奇怪。您是否找到了使视图在没有它的情况下呈现的解决方案?以上是关于如何在没有模板引擎的情况下构建 SPA Spring 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有 SPA 或图形界面的情况下,仅通过 POSTMAN 访问 Laravel Sanctum 的 API 路由?
了解服务器/客户端路由:亚马逊(?)如何在没有重定向(或历史条目)的情况下重定向我的 SPA?