Spring Boot不加载JavaScript文件

时间:2019-04-15 13:13:23

标签: spring spring-boot

Spring启动后,我打开了ajax.html页面,但是什么也没有发生。没有错误消息,js文件只是没有启动。如果我在ajax.html中编写javascript代码,则可以正常工作。

ajax.html

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org" xmlns:c="http://xmlns.jcp.org/xml/ns/javaee">
<head>
    <title>Getting Started: Serving Web Content</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <script type="text/javascript"
            src="webjars/jquery/2.2.4/jquery.min.js"></script>
    <script type="text/javascript" src="../static/js/main.js"></script>
</head>
<body>
<div id="fill">
</div>
</body>
</html>

项目结构

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

您是否为webjar添加了资源处理程序?参见:https://www.baeldung.com/maven-webjars

../static/js/main.js似乎是错误的。在春季启动中,静态目录中的资源是在URL中引用的,而没有“ static”,因此仅为/js/main.js

除此之外,是否正在加载脚本?控制台的“网络”选项卡说什么?

答案 1 :(得分:1)

我遇到了同样的问题,并通过以下方式解决了该问题:

我将addResourceHandlers添加到了Java配置文件中:

@Configuration
@EnableWebMvc
@ComponentScan
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        registry.jsp("/WEB-INF/views/", ".jsp");
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/css/**", "/js/**")
                .addResourceLocations("classpath:/static/css/", "classpath:/static/js/");
    }

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
}

resources文件夹包含一个static/js和一个static/css文件夹,都包含指定的文件。

希望它能为您提供帮助!