`

spring访问静态资源文件

阅读更多
用 Spring MVC 开发应用程序,对于初学者有一个很头疼的问题,那就是程序数据都已经查询出来了,但界面样式仍然十分丑陋,加载不了 css,js,图片等资源文件。当你在浏览器上直接输入某个css文件的路径时,直接得到404错误,而路径肯定没有错,其原因就在于在web.xml 中配置了类似如下的 spring servlet:


程序代码 程序代码


<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>


请注意  <url-pattern>/</url-pattern> 这表示这个servlet 拦截了所有的请求,包括css,js等。所以出现上面描述的情况。如何解决这个css,js等路径问题呢,有如下几种解决方案.

1. 使用spring mvc resource 去读取静态文件
比如在 WEN-INF 下建立static 文件夹,并在 static 文件夹里面建立css 文件夹,然后建立 1.css  文件.
修改 mvc-dispatcher-servlet.xml 文件


程序代码 程序代码


<mvc:resources mapping="/static/**" location="/WEB-INF/static/"/>


这样配置之后,可以通过 http://your-ip:port/your-app/static/css/1.css 直接访问了。

2. 采用 default servlet
在 web.xml  里面配置


程序代码 程序代码


<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/static/*</url-pattern>
</servlet-mapping>


这样做了之后,所有前缀为static 的请求都交给default servlet 去处理。如果你请求  http://your-ip:port/your-app/static/css/1.css ,就表示在 webcontent 目录下的css文件夹下的1.css文件。

3. 通过文件扩展名进行处理
在 web.xml 里面配置


程序代码 程序代码


<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.png</url-pattern>
    <url-pattern>*.js</url-pattern>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>



4. 对spring servlet 不用restful 风格。在url 上加上前缀


程序代码 程序代码


<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/app</url-pattern>
</servlet-mapping>


这样做的目的是让 dispatchservlet 去拦截以/app 开头的那些 URL,并不拦截css,js等。

5. 对spring servlet 不用restful 风格。在url 上加上后缀


程序代码 程序代码


<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>


这样做的目的是让 dispatchservlet 只拦截*.do 的url. 并不拦截css,js等。

上面介绍的5种方法,根据情况自己任意选择一种,现在没办法说那种好,那种方法不好,都有可取之处,用在不同的场景而已。
分享到:
评论

相关推荐

    狂神spring-security静态资源.zip

    .antMatchers("/static/**").permitAll() // 允许所有用户访问静态资源 .anyRequest().authenticated() // 其他请求需要认证 .and() .formLogin() // 配置表单登录 .loginPage("/login") .defaultSuccessUrl(...

    狂神Spring Security静态资源

    3. **使用Spring Security的访问决策管理器(AccessDecisionManager)**:如果你希望控制哪些角色可以访问静态资源,可以实现自己的访问决策管理器,然后在配置中指定使用这个管理器。 4. **使用HTTP基本认证或OAuth2...

    SpringSecurity静态资源.rar

    在“SpringSecurity静态资源.rar”这个压缩包中,我们可以推测包含的是与SpringSecurity项目相关的静态资源文件,如CSS样式表、JavaScript脚本、图片等,这些文件通常用于构建Web应用的前端界面。 SpringSecurity在...

    springboot security 静态资源

    总的来说,Spring Boot结合Spring Security管理静态资源,需要理解如何配置安全规则,以确保既保护了敏感接口,又能让用户正常访问静态资源。在实际项目中,这一步骤至关重要,因为错误的配置可能导致用户无法正常...

    狂神说SpringSecurity静态资源.rar

    1. **静态资源的访问控制**:SpringSecurity允许开发者定义哪些资源是公开的,哪些需要经过认证或授权才能访问。通过配置`HttpSecurity`,我们可以使用`.antMatchers()`或`.regexMatchers()`来匹配资源路径,并设置...

    SpringBoot项目+SpringSecurity+前端静态资源

    Spring Security对于前端静态资源的访问也有控制,例如,它可以设置允许匿名访问的资源,防止未认证的用户访问某些敏感的静态文件。这可以通过定义一个AntMatcher或者RegexRequestMatcher来实现,将特定的URL路径...

    防止SpringMVC拦截器拦截js等静态资源文件的解决方法

    然而,在使用拦截器时,可能会遇到拦截器误拦截静态资源文件(如js、css、图片等)的问题。这不仅会影响网页的加载速度,还可能导致页面呈现异常。 在本文中,我们讨论了三种解决SpringMVC拦截器拦截静态资源文件的...

    SpringMVC访问静态资源

    在本篇文章中,我们将深入探讨Spring MVC如何配置和管理静态资源的访问。 ### 1. 静态资源默认处理 Spring MVC默认会自动处理应用中的静态资源。在`DispatcherServlet`的配置中,有一个`...

    浅谈Spring Security 对于静态资源的拦截与放行

    当我们尝试在页面中引用静态资源时,如CSS文件,如果Spring Security没有正确配置,可能会遇到类似以下的错误: ``` Refused to apply style from 'http://localhost:8080/login' because its MIME type ('text/...

    SpringBoot访问静态资源.docx

    Spring Boot提供了简单易用的方式来配置和访问静态资源,使得开发者能够更加专注于业务逻辑。 1. **默认静态资源目录** Spring Boot 默认会自动配置Web应用来处理位于`classpath/static`目录下的静态资源。这意味...

    在SpringBoot中静态资源访问方法

    这样,在访问静态资源时,SpringBoot 会自动加载静态资源文件到 classpath 下。 在 SpringBoot 中,我们可以通过实现 `WebMvcConfigurerAdapter` 接口,来重写 `addResourceHandlers` 方法,实现静态资源的访问。 ...

    02_用户模块和加入样式和spring对静态文件的放行

    标题“02_用户模块和加入样式和spring对静态文件的放行”涉及到的是Web开发中的关键概念,尤其是关于Spring框架处理用户模块、样式表(CSS)以及静态资源的访问控制。这一主题主要涵盖以下几个核心知识点: 1. **...

    spring boot 自定义规则访问获取内部或者外部静态资源图片的方法

    这样,我们可以将图片存放在磁盘上,并且可以通过 localhost:8080/+资源路径+资源名 访问静态资源。 基于代码层面配置 我们可以通过实现 WebMvcConfigurerAdapter 接口来配置静态资源映射规则: @Configuration ...

    Spring boot 默认静态资源路径与手动配置访问路径的方法

    Spring Boot 静态资源路径与手动配置访问路径的方法 Spring Boot 框架中,默认静态资源路径的配置是非常重要的,它直接影响着静态资源的访问路径。在本文中,我们将详细介绍 Spring Boot 默认静态资源路径与手动...

    狂神springboot静态资源.zip

    标题“狂神springboot静态资源.zip”表明这是一个关于Spring Boot框架中处理静态资源的教程或示例集合。Spring Boot是Java开发中一个流行的微服务框架,它简化了配置,提供了快速构建可生产级应用的方式。在Spring ...

    SpringBoot中访问静态资源示例源码

    在Spring Boot框架中,访问静态资源是开发Web应用时常见的需求。Spring Boot为开发者提供了便捷的方式,使得我们可以在不配置额外的servlet容器或者filter的情况下,轻松地处理静态资源请求。本示例源码着重展示了...

    Spring Boot Web 静态文件缓存处理的方法

    加上缓存配置后,我们访问页面后,被加载过的静态资源就会缓存在浏览器的内存中或磁盘中。在 Size 那列有 from memory cache,资源被缓存在浏览器的内存中了,也有的文件会缓存在磁盘中,那就是 from disk cache。 ...

    springmvc静态资源访问

    ### Spring MVC 中静态资源访问详解 #### 一、引言 在Web开发中,静态资源如CSS、JavaScript、图片等是构建用户界面不可或缺的一部分。Spring MVC作为一款流行的Java Web框架,提供了灵活的方式来处理这些静态资源...

    spring资源访问的一个例子

    总之,这个例子展示了如何在Spring Boot项目中配置和访问静态资源。理解并掌握这些概念对于构建一个完整的Web应用程序至关重要。通过合理配置,我们可以轻松地管理和优化我们的应用程序资源,提升用户体验。

    springboot项目打成jar包后无法获取static下的静态资源文件的问题分析

    标题和描述中提到的知识点是关于Spring Boot项目在打包成jar格式后,无法访问位于static目录下的静态资源文件的问题分析。这个问题在开发和部署时非常常见,因为Spring Boot应用在运行时,会将静态资源打包到jar文件...

Global site tag (gtag.js) - Google Analytics