springboot的使用html页面及css、js路径的配置

1. springboot集成 html页面

pom.xml文件中增加thymeleaf的starter引用

 <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
 </dependency>

springboot项目,在application.yml配置文件中增加如下配置

spring:
  thymeleaf:
    prefix: classpath:/templates
    suffix: .html
    cache: false
  • prefix
    prefix意为前缀
  • suffix
    suffix意为后缀

如我的页面为hello-world.html,它所在的目录结构就应该为
resource–> templates --> hello-world.html
在controller中,return的值则为 /hello-world ,系统会自动给加上.html的后缀

然后增加如下controller中就可以访问到hello-world.html页面了

@Controller
@RequestMapping("/")
public class HelloWorldController {

    @RequestMapping("hello-world")
    public String index() {
        return "/hello-world";
    }
   }

2.页面中引用本地js、css文件的路径配置

我的页面中本来都是直接使用的element-ui和vue直接提供的在线js,但是因为页面嵌套会有跨域的问题,所以页面中的js、css都要改为使用本地文件。在网上试了很多的方法,最后使用排除法缩减到最后的方法如下:

  • resource目录下,创建static目录,在static目录下分别创建js目录和css目录来存放js文件和css文件。

  • 在springboot入口的Application文件中增加WebMvc配置,首先继承WebMvcConfigurationSupport类,然后重写addResourceHandlers方法,在里面增加对/css路径和/js路径的映射。

    	public class ApplicationBootStrap extends WebMvcConfigurationSupport {
    	
    		public static void main(String[] args) {
    			SpringApplication.run(ApplicationBootStrap.class, args);
    		}
    	
    	    @Override
    	    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
    	        registry.addResourceHandler("/css/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX + "/static/css/");
    	        registry.addResourceHandler("/js/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX + "/static/js/");
    	        super.addResourceHandlers(registry);
    	    }
    	}
    
  • 页面引用配置

    • 1.html标签 要增加 xmlns:th="http://www.thymeleaf.org" 引用
    • 2.<header>标签中增加 <base th:href="@{/}"> 配置
    • 3.css引入增加 th:href配置路径,js引入增加th:src路径配置。这里要注意link要有 rel="stylesheet"script要有type="text/javascript"的格式说明,这是规范。

    然后就大功造成了。文件内配置如以下代码。

    <!DOCTYPE html>
    <html xmlns:th="http://www.thymeleaf.org">
    <head>
        <base th:href="@{/}">
        <meta charset="UTF-8">
        <!-- import CSS -->
        <link rel="stylesheet" href="../../static/css/index.css" th:href="@{/css/index.css}"/>
    </head>
    <body>
    <div id="app">
        
    </div>
    </body>
    <!-- import Vue before Element -->
    <script src="../../static/js/vue-2.6.12.js" th:src="@{/js/vue-2.6.12.js}" type="text/javascript"></script>
    <!-- import JavaScript -->
    <script src="../../static/js/index.js" th:src="@{/js/index.js}" type="text/javascript"></script>
    <script src="../../static/js/jquery1.7.2.min.js" th:src="@{/js/jquery1.7.2.min.js}" type="text/javascript"></script>
    <script>
        let vm = new Vue({
            el: '#app',
           	.....业务代码省略....
        })
    </script>
    </html>
    
  • 20
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Spring Boot 是一个非常适合构建微服务应用程序的 Java 框架,它为我们提供了诸如自动配置、自动装配等功能,使得开发者可以更加专注于业务代码的编写而不必花费大量时间和精力在繁琐的配置上。在 Spring Boot 中,我们可以使用 Thymeleaf 模板引擎来渲染我们的 HTML 页面,而且还可以方便地引入 CSS 文件和 JS 文件,使得我们的页面更加美观并增强用户交互体验。 但是有些开发者在使用 Spring Boot 访问 templates 下的 HTML 页面时,可能会遇到 CSSJS 失效的情况,这是为什么呢? 首先,我们需要明确 Thymeleaf 模板引擎会将我们的 HTML 页面解析成可执行的 Java 代码,然后通过执行这段代码来生成最终的 HTML 页面,所以我们需要在头部添加以下代码来引入 CSSJS 文件: <!-- 引入 CSS 文件 --> <link rel="stylesheet" th:href="@{/css/style.css}"/> <!-- 引入 JS 文件 --> <script th:src="@{/js/main.js}"></script> 其中,@{} 中的 “/” 表示根目录,th:href 和 th:src 是 Thymeleaf 的语法,表示将表达式的值填入到 href 和 src 中。 如果我们直接通过浏览器打开 HTML 页面CSSJS 是可以正常加载的,但是如果将 HTML 页面放在 Spring Boot 项目中作为一个模板来使用,我们需要将其放入到 templates 目录下,并且使用 Thymeleaf 模板引擎来进行渲染,因此我们需要按照以下方法来引入 CSSJS: <!-- 引入 CSS 文件 --> <link rel="stylesheet" th:href="@{css/style.css}"/> <!-- 引入 JS 文件 --> <script th:src="@{js/main.js}"></script> 注意,这里的表达式中的 “/” 是不需要的,直接使用文件夹名和文件名即可。如果还是发现 CSSJS 失效,可以开启浏览器的开发者工具,查看控制台中的错误信息,通常是 URL 地址不正确或者文件路径不正确的问题。此外,还要确保文件路径的大小写和文件名的大小写完全一致,否则也可能会出现 CSSJS 失效的情况。 综上所述,Spring Boot 访问 templates 下的 HTML 页面时,CSSJS 失效通常是因为路径不正确或者大小写不一致导致的,我们只需要按照正确的方法来正确引入 CSS 文件和 JS 文件即可。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值