JavaSpring5添加静态文件目录webapp
我有一个Spring5(不是SpringBoot)web应用程序。我有一个输出html的控制器。我输出了一个HTML字符串,它可以工作,但是JS内容的相对路径不工作。我将按如下方式布局我的结构:
src
main
java
resources
webapp
css
js
img
WEB-INF
index.html
test
java
resources
当我输出html文本时,无法找到所有相对位置: 如果我打电话: http://localhost:8080/myapp/controller?{某些参数} 我希望 http://localhost:8080/myapp/js/myjsfile.js 我会在那里的。当我构建和部署WAR时,分解的WAR文件包含所有正确的代码。所以我希望文件能在那里找到。然而,从我所读到的内容来看,静态文件可以以不同的方式提供。因此,我有两个问题:
1)从Spring5Web应用程序提供静态文件的标准方式是什么?我是否以这种方式更改结构:
src
main
java
resources
static
css
js
img
webapp
WEB-INF
index.html
test
java
resources
然后我想我必须这样做网络配置:
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry){
registry.addResourceHandler("/resources/**")
.addResourceLocations("static/js", "static/css", "static/img")
.setCachePeriod(31556926);
}
}
2)或者,我是否可以使用现有结构,然后更改WebConfig以添加以下静态位置:
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry){
registry.addResourceHandler("/webapp/**")
.addResourceLocations("/js", "css", "img")
.setCachePeriod(31556926);
}
}
但是,如果将这些文件放在webapp下不起作用,我可以理解将它们移动到/resources,如果这是标准的做法的话
所以,如果我能在这方面得到任何帮助,那就好了。无论哪种方法,只要有效,我都可以。谢谢
# 1 楼答案
选项1是方法,将文件夹放在resources目录下(根据需要命名):
那么就这么做:
# 2 楼答案
尝试使用resources/static文件夹提供查看文件。并将以下配置添加到WebMVCConfigure:
它会将“/”URL中请求的所有静态文件映射到resources/static文件夹