Spring Boot 配置项目路径

背景

这两天做Spring Boot项目,打完jar包后发给业务方,项目只能作为子模块嵌入在对方的系统里,请求时需要加入项目路径。

Spring Boot配置项目路径

  • Spring Boot 2.0之前,配置为 server.context-path
  • Spring Boot 2.0之后,配置为 server.servlet.context-path
  • 默认值server.servlet.context-path=/ ,访问url为 127.0.0.1:8080/index
  • 配置 server.servlet.context-path=/hello,访问url为 127.0.0.1:8080/hello/index

Thymeleaf 前端页面url添加项目路径

1、thymeleaf 中 th:href 和 href 的区别

语法格式如下:

<a th:href="@{/app/lise}">应用列表</a>
<a href="/app/list">应用列表</a>
  1. 默认项目路径为空时,打Jar包单独运行时:二者效果一致
  2. 在使用Maven内嵌Tomcat或打War包部署到Servlet容器,或者在项目内执行App启动类,且有配置项目路径
  • href始终从端口开始作为根路径,如 http://127.0.0.1:8080/app/list
  • th:href会寻找项目路径作为根路径,如 http://127.0.0.1:8080/hello/app/list
2、引入CSS、JS、Img文件
<link rel="stylesheet" type="text/css" th:href="@{/css/common.css}">
<script type="text/javascript" th:src="@{/js/jquery/jquery.js}"></script>
<img th:src="@{/img/logo.png}">
3、JS内获取项目路径contextPath的三种方式
<script th:inline="javascript" type="text/javascript">
    var contextPath  = [[@{/}]];
    var contextPath = /*[[@{/}]]*/'';
    var contextPath=[[${#httpServletRequest.getContextPath()}]];
</script>
  • 实际ajax请求时,可以url前添加contextPath
<script th:inline="javascript" type="text/javascript">
    var contextPath  = [[@{/}]];
    var baseUrl = "http://127.0.0.1:8080" + contextPath;
	$.ajax({
		//请求地址
		url : baseUrl + "/app/list",
		// 省略
	});
</script>
4、图标ico配置
  • 默认 favicon.ico 文件在 resources 目录下
  • 添加了项目路径后,图标 ico 访问也无法展示了,因此需要在头文件里添加下面一段
<link rel="shortcut icon" th:href="@{/favicon.ico}"/>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值