【问题标题】:Spring 4 loading static resourcesSpring 4 加载静态资源
【发布时间】:2014-06-06 10:50:06
【问题描述】:

我得到了一个 Spring MVC 应用程序,其中包含一堆当前放置在 src/main/java/resources/assets 目录中的 css 和 js 文件。

我阅读了 Spring Docs 和一些关于如何使用 ResourceHandlerRegistry 类为我的模板加载这些文件的教程。我特别认为this Tutorial 的代码 sn-ps 非常适合我的项目结构。

但我的资源文件总是出现 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 4 的更多信息。我错过了一些配置文件吗?还是资源处理程序注册不适合我的结构?我期待您的回复。

【问题讨论】:

    标签: java css spring spring-mvc


    【解决方案1】:

    您说您的样式表和 JavaScript 文件位于“/assets”下。我假设你有目录“/assets/css”和“/assets/js”。然后,给定以下资源处理程序定义:

    @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>
    

    【讨论】:

      猜你喜欢
      • 2019-01-31
      • 2013-07-18
      • 2016-08-17
      • 1970-01-01
      • 1970-01-01
      • 2022-09-30
      • 2014-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多