我有一个spring MVC应用程序,其中包含一堆目前放在src/main/java/resources/assets
目录中的css和js文件。
我阅读了Spring Docs和一些教程,了解如何使用ResourceHandlerRegistry类为我的模板加载这些文件。我特别认为来自this Tutorial的代码片段非常适合我的项目结构。
但我的资源文件总是得到404.
以下是目前正在运行的应用程序/配置类:
@Configuration
@EnableAutoConfiguration
@ImportResource("/applicationContext.xml") // only used for jpa/hibernate
@EnableWebMvc
@ComponentScan(basePackages = "at.sustain.docutools.viewer.presentation")
public class Application extends WebMvcConfigurerAdapter {
public static void main(String args[]) {
SpringApplication.run(Application.class);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/assets/**")
.addResourceLocations("classpath:/assets/");
registry.addResourceHandler("/css/**")
.addResourceLocations("/css/");
registry.addResourceHandler("/js/**")
.addResourceLocations("/js/");
}
}
这里是我的HTML文件中使用的HEADer(放在资源/模板中):
<head>
<!-- local Stylesheet -->
<link href="css/style.css" rel="stylesheet" />
<!-- local Javascript files -->
<script src="js/general.js"></script>
<script src="js/xmlhttp.js"></script>
<!-- local Javascript libraries -->
<script src="js/lib/filter.js"></script>
<script src="js/lib/jquery.fs.zoomer.js"></script>
<script src="js/lib/jquery.validate.js"></script>
</head>
html文件是通过我的控制器类正确加载的,但是在尝试点击例如我的style.css
文件(http://localhost:8080/css/style.css
)我已经提到了404。
我似乎无法找到更多可以为Spring提供有关此主题的更多信息的资源。我是否会错过一些配置文件?或者不是资源处理程序注册适合我的结构?我很期待你的回复。
答案 0 :(得分:9)
您说您的样式表和JavaScript文件位于&#34; / assets&#34;之下。我假设你有目录&#34; / assets / css&#34;和&#34; / assets / js&#34;。然后,给定以下资源处理程序定义:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/assets/**")
.addResourceLocations("classpath:/assets/");
}
您可以像这样在HTML中加载这些资源:
<link href="/assets/css/style.css" rel="stylesheet" />
<script src="/assets/js/general.js"></script>