SpringBoot打包成war包,部署到Tomcat并添加项目路径后,导致静态资源路径失效

8 篇文章 0 订阅
5 篇文章 0 订阅
  1. 静态资源访问失效,是应为其地址无法自动添加项目路径
    以下model.html

<div th:fragment="header" >
    头部
</div>

<div th:fragment="footer" >
    尾部
</div>

以下index.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <!-- 如果使用了base标签,就会自动给静态资源加上上下文路径(项目路径),就不需要加@{},两种方法选一样 -->
    <!-- <base th:href="@{/}"> -->
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- 使用 th:href="@{样式路径}" 给静样式 url 添加项目上下文路径 -->
    <link th:href="@{css/style.css}" rel="stylesheet" />
</head>
<body>

    <!-- 头部 th:include 格式(【url】 :: 【url对应页面的 th:fragment="header"】) -->
    <div th:include="model :: header"></div>

    <!--
        以下内容在springboot项目打包成war包部署在tomcat后,
        如果配置项目路径,
        所有静态资源以及a标签的url不会自动加上此项目路径。
        因此,会导致页面故障,
        加上 thymeleaf 技术能解决问题。
    -->
    <div>
        <h1 th:text="${text}">后台传过来的文本</h1>
        <!-- 使用 th:src="@{页面路径}" 给 url 添加项目上下文路径 -->
        <iframe th:src="@{index_1}" style="width: 500px"></iframe>
    </div>

    <!-- 脚部 th:include 格式(【url】 :: 【url对应页面的 th:fragment="header"】) -->
    <div th:include="model :: footer"></div>

    <!-- 使用 [[@{/}]] 取得上下文路径 context -->
    <script type="text/javascript" th:inline="javascript"> var context = [[@{/}]]; </script>
    <script type="text/javascript">
        console.log(context)
    </script>

</body>
</html>

以下index_1.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link th:href="@{css/style.css}" rel="stylesheet" />
</head>
<body>

    <h1 th:text="${text}">后台传过来的文本</h1>

</body>
</html>

以下controller.java

package com.example.templates;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class controller {

    @GetMapping("/")
    public String conIndex(Model model){
        model.addAttribute("text","index:这是后台传来的文本");
        return "index";
    }

    @GetMapping("/index_1")
    public String index_1(Model model){
        model.addAttribute("text","index_1:这是后台传来的文本");
        return "index_1";
    }

    @GetMapping("/model")
    public String model(){
        return "model";
    }

}
  1. 结果
    在这里插入图片描述
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值