thymeleaf利用fragment解决html页面间获取context-path问题

问题说明

我使用spring boot+thymeleaf做了个项目,那前台页面都是html,里面有各种api调用和路径跳转。

大家都知道这些路径不能写死,为保证任何情况下路径的正确性,一般都是这种格式:项目路径+接口路径,例如:localhost:8080/system/api/user/1

现在已知thymeleaf页面中js要获取项目路径时这样的:

<script type="text/javascript" th:inline="javascript">
    /*<![CDATA[*/
    var ctx = /*[[@{/}]]*/ '';
    /*]]>*/
</script>

ctx=/system/

那我又不想每个页面都写这么一段,所以利用thymeleaf的片段引用特性可以把它抽成公共脚本供各html页面用。

 

解决方法

1.创建fragment.html

<script type="text/javascript" th:inline="javascript" th:fragment="ctx">
    /*<![CDATA[*/
    var ctx = /*[[@{/}]]*/ '';
    /*]]>*/
</script>

 

2.页面引用

<!--ctx-->
<script th:replace="~{fragment::ctx}"/>

 

3.调整接口和路径格式

$.get(ctx+"api/book/list",
            {
                author: param.author,
                name: param.name,
                isbn: param.isbn,
                page: pageNo,
                limit: pageSize
            },

 

var href=ctx+"bookDetail/"+data[i].id;

 

 

 

 

posted @   一锤子技术员  阅读(16)  评论(0编辑  收藏  举报  
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示