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;

 

 

 

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值