我有一个 Spring 5(不是 Spring Boot)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 ?{some parameters} 我会期望 http://localhost:8080/myapp/js/ myjsfile.js 会在那里。当我构建和部署 WAR 时,展开的 WAR 文件包含所有正确的代码。所以我希望文件在那里并找到。但是,根据我一直在阅读的内容,我希望可以以不同的方式提供静态文件。所以,我有两个问题:
1) 从 Spring 5 Web 应用程序提供静态文件的标准方式是什么?我是否以这种方式更改结构:
src
main
java
resources
static
css
js
img
webapp
WEB-INF
index.html
test
java
resources
然后我假设我必须这样做 webconfig:
@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 如果这是标准的做事方式。
所以,如果我能得到任何帮助,那会很好。只要有效,我都可以接受。谢谢!
素胚勾勒不出你
Smart猫小萌
相关分类