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>
项目结构
答案 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
文件夹,都包含指定的文件。
希望它能为您提供帮助!