cache-version.js文件说明

本文介绍了如何通过更新页面中的cacheVersion参数来清除特定URL的缓存,这对于部署新版本的CSS、JS或iframe等静态资源时十分有用。文中还提到了在不同环境下设置cacheVersion值的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

页面引入的css/js或iframe页面有变动时,修改cacheVersion的值.
注意:发布版cacheVersion参数不能为new Date().getTime()

cache-version.js内容如下:

//发布版本通过改变此值来清理url中有cacheVersion参数的缓存
var cacheVersion=3;

//本地调试时不缓存文件
//var cacheVersion=new Date().getTime();

转载于:https://my.oschina.net/u/3146772/blog/1829995

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 1. 组件扫描(根据实际包名修改) --> <context:component-scan base-package="cn.edu.uibe.controller"/> <!-- 2. 注解驱动(必须启用) --> <mvc:annotation-driven/> <!-- 3. 静态资源处理(关键修改) --> <mvc:resources mapping="/statics/**" location="/statics/" cache-period="31536000"/> <mvc:resources mapping="/images/**" location="/images/" cache-period="31536000"/> <!-- 4. 兜底静态资源处理(必须添加) --> <mvc:default-servlet-handler/> <!-- 5. 视图解析器(优化配置) --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"/> <property name="suffix" value=".jsp"/> <!-- 开发阶段建议禁用缓存 --> <property name="cache" value="false"/> </bean> <!-- 6. 文件上传(优化配置) --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="10485760"/> <!-- 10MB --> <property name="defaultEncoding" value="UTF-8"/> <property name="resolveLazily" value="true"/> </bean> <!-- 7. 拦截器配置(示例,可选) --> <mvc:interceptors> <bean class="cn.edu.uibe.interceptor.AccessInterceptor"/> </mvc:interceptors> <!-- 8. 消息转换器(可选) --> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="defaultCharset" value="UTF-8"/> </bean> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/> </mvc:message-converters> </beans>/这是spring-mvc.xml文件,给出完整的修改后的文件
最新发布
07-11
<think>我们参考用户提供的引用内容,特别是引用[1]、[2]、[3]中关于Spring MVC配置的信息,来构建一个完整的spring-mvc.xml配置文件。 用户希望包含以下配置:组件扫描、注解驱动、静态资源处理、视图解析器、文件上传、拦截器和消息转换器等。 根据引用[2],我们需要配置组件扫描,指定控制器所在的包。 根据引用[1],我们需要配置视图解析器,指定视图的前缀和后缀。 根据引用[3],我们可以使用<mvc:resources>来处理静态资源,或者使用<mvc:default-servlet-handler>将静态资源交回Web服务器处理。但通常推荐使用<mvc:resources>,因为它更灵活。 此外,我们还需要: 1. 开启注解驱动:<mvc:annotation-driven>,以支持@RequestMapping等注解。 2. 文件上传:需要配置一个MultipartResolver,通常使用CommonsMultipartResolver(需要依赖commons-fileupload)。 3. 拦截器:通过<mvc:interceptors>配置。 4. 消息转换器:可以通过<mvc:annotation-driven>内部的配置来定制,但通常默认已包含常用的转换器(如JSON转换需要额外添加依赖,如Jackson)。 下面是一个完整的spring-mvc.xml示例,包含上述所有配置。 注意:由于文件上传需要,确保项目中已经添加了commons-fileupload和commons-io依赖。 配置文件如下:</think>### 完整优化的 spring-mvc.xml 配置文件 ```xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 1. 组件扫描配置 --> <context:component-scan base-package="com.example.controller" /> <!-- 2. 注解驱动配置 --> <mvc:annotation-driven> <!-- 消息转换器配置 --> <mvc:message-converters> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper"> <bean class="com.fasterxml.jackson.databind.ObjectMapper"> <property name="dateFormat"> <bean class="java.text.SimpleDateFormat"> <constructor-arg value="yyyy-MM-dd HH:mm:ss" /> </bean> </property> </bean> </property> </bean> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="defaultCharset" value="UTF-8" /> </bean> </mvc:message-converters> </mvc:annotation-driven> <!-- 3. 静态资源处理 --> <!-- 优先使用Spring的资源处理器 --> <mvc:resources mapping="/statics/**" location="/statics/" cache-period="31556926"/> <mvc:resources mapping="/images/**" location="/images/" cache-period="31556926"/> <!-- 备用方案:当Spring找不到资源时交给默认Servlet处理 --> <mvc:default-servlet-handler /> <!-- 4. 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/" /> <property name="suffix" value=".jsp" /> </bean> <!-- 5. 文件上传配置 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="10485760" /> <!-- 10MB --> <property name="defaultEncoding" value="UTF-8" /> </bean> <!-- 6. 拦截器配置 --> <mvc:interceptors> <!-- 全局拦截器 --> <bean class="com.example.interceptor.GlobalInterceptor" /> <!-- 路径特定拦截器 --> <mvc:interceptor> <mvc:mapping path="/admin/**"/> <bean class="com.example.interceptor.AdminAuthInterceptor" /> </mvc:interceptor> </mvc:interceptors> <!-- 7. 异常处理器 --> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <prop key="java.lang.Exception">error/generic</prop> <prop key="org.springframework.web.servlet.NoHandlerFoundException">error/404</prop> </props> </property> </bean> </beans> ``` ### 配置说明 1. **组件扫描** `<context:component-scan base-package="com.example.controller"/>` 自动扫描指定包下的控制器组件,支持`@Controller`等注解[^2] 2. **注解驱动** `<mvc:annotation-driven>` - 启用Spring MVC注解功能(`@RequestMapping`, `@ResponseBody`等) - 配置JSON消息转换器(需Jackson库) - 设置日期格式和字符编码 3. **静态资源处理** `<mvc:resources>`优先处理静态资源,支持缓存控制 `<mvc:default-servlet-handler>`作为备用方案处理容器默认资源[^3] 4. **视图解析器** 配置JSP视图的前缀(`/WEB-INF/views/`)和后缀(`.jsp`),简化视图返回逻辑[^1] 5. **文件上传** 配置`CommonsMultipartResolver`支持文件上传,设置10MB大小限制和UTF-8编码 6. **拦截器** 支持全局拦截器和路径特定拦截器,实现认证、日志等功能 7. **异常处理** 统一处理404等异常,跳转到定制错误页面 ### 关键优化点 1. **静态资源双保险机制** ```xml <mvc:resources mapping="/statics/**" location="/statics/" /> <mvc:default-servlet-handler /> ``` Spring优先处理静态资源,未找到时转交Web容器处理[^3] 2. **高效JSON处理** ```xml <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper">...</property> </bean> ``` 配置Jackson转换器并定制日期格式 3. **拦截器链配置** ```xml <mvc:interceptors> <bean class="com.example.interceptor.GlobalInterceptor"/> <mvc:interceptor> <mvc:mapping path="/admin/**"/> <bean class="com.example.interceptor.AdminAuthInterceptor"/> </mvc:interceptor> </mvc:interceptors> ``` 支持全局和路径特定的拦截器组合 4. **异常统一处理** ```xml <prop key="org.springframework.web.servlet.NoHandlerFoundException">error/404</prop> ``` 自定义404错误页面,提升用户体验 ### 依赖要求 ```xml <!-- pom.xml 需添加 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.13.0</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> ``` ### 项目结构建议 ``` src └── main ├── java │ └── com │ └── example │ ├── controller │ └── interceptor ├── resources └── webapp ├── statics │ ├── css │ ├── js │ └── images ├── WEB-INF │ ├── views │ │ ├── error │ │ └── ... │ └── spring │ └── spring-mvc.xml └── index.jsp ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值