当前位置: 首页 > 面试题库 >

Spring 4加载静态资源

闻人修明
2023-03-14
问题内容

我得到了一个Spring MVC应用程序,该应用程序当前在src/main/java/resources/assets目录中放置了一堆CSS和JS文件。

我通读了Spring
Docs和一些有关如何使用ResourceHandlerRegistry类为模板加载这些文件的教程。我特别认为本教程中的代码段完全适合我的项目结构。

但是我的资源文件上总是显示404。

这是我当前正在使用的Application / Configuration类:

@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提供有关此主题的更多信息。我会错过一些配置文件吗?还是资源处理程序注册不适合我的结构?期待您的回复。


问题答案:

您说样式表和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>


 类似资料:
  • 4.1 原生koa2实现静态资源服务器 4.2 koa-static中间件

  • 我试图使用相对路径在jsp文件中加载静态资源,如css文件和javascript文件,但servlet映射似乎覆盖了对它们的映射。 项目结构: web.xml: mvc调度程序servlet。xml: 我尝试加载样式表的JSP文件: 我得到的错误是: 警告组织。springframework。网状物servlet。PageNotFound:1108-在名为“mvc dispatcher”的Disp

  • 我将SpringMVC与Thymleaf和spring安全一起使用。我想加载一个页面使用Thymleaf模板,我可以加载我的静态资源。 例如,我想从template.html加载位于:static/img/theme/logo.png中的图片 我得到的是:结果 template.html: mvcConfig.java WebSecurityConfig: 源代码树

  • 我的问题很简单。我无法在Spring中加载静态资源,下面是我的配置文件。 dispatcher servlet。xml 网状物xml 我已将js和css文件放入/webapp/resources/css和/webapp/resources/js中。 我知道这个问题已经被解决了很多次,但我无法加载静态资源。我得到405浏览器上没有方法错误。 在网上尝试了所有其他解决方案。请告诉我哪里出了问题。对这些

  • 问题无法让Spring为静态资源添加资源处理程序。 背景信息我有一个Spring MVC webapp在独立的Jetty实例中运行。我的webapp结构是 我已经扩展了WebMVCConfigureAdaptor,添加了一个资源映射,这样URL就像公司一样。com/myservlet/resources/css/main。css将解析到webapp根目录/资源/css文件夹。 我的小控制器是这样的

  • 前言 一个http请求访问web服务静态资源,一般响应结果有三种情况 访问文本,例如js,css,png,jpg,gif 访问静态目录 找不到资源,抛出404错误 原生koa2 静态资源服务器例子 demo源码 https://github.com/ChenShenhai/koa2-note/blob/master/demo/static-server/ 代码目录 ├── static # 静态资