NutzCN Logo
问答 有没有 类似于spring 对静态资源的处理方式呀 ?
发布于 3219天前 作者 qq_5208486d 2253 次浏览 复制 上一个帖子 下一个帖子
标签:

比如:http://localhost:8089/js/xm_mtpu.js
最总做到
比如:http://localhost:8089/js/xm_mtpu.js?v=1203938371661

21 回复

?重定向过去的意思??

代码如下:
行的通的话,重定向也可以呀,可惜不行

@At("/*")
    @Ok("raw:js")
    public String httpStatus_404(HttpServletRequest request) {
        String str= request.getServletPath();
        if(str.endsWith(".js")){
            return str+"?v="+new Date().getTime();
        }else{
            return  null;
        }
    }
@Ok(">>:${obj}");

也许在动作链里面做更好

有又想了想,有点诡异呢,这请求2次为了啥

想不出个场景来,这页面咋写

@wendal
页面引用js,然后后台在js后面增加一个版本号的东西

因为项目上线后,会有一段时间的试运行,js会改的比较多,不加类似于版本号的东西的话,浏览器就缓存的特别厉害

@qq_5208486d 这不是应该改页面模版吗

用的 EXT的框架,用js绘制页面的, 这样也容易造成 js非常的多

考虑一下这个方法

入口方法处理完了, 依然可以继续下一个Filter(最终到达容器处理静态文件的DefaultServlet), 可以吗?

其实我还没想明白是什么情况... 如果js被缓存了,那么在失效前浏览器不会再请求, 如果有must-val的header,那么就一定再请求一次. 前者无解,后者也不是个问题吧

  1. js文件加上?v=11121212这样的版本号,如果缓存的是v=0,则会去请求一次;
  2. 你说在页面header加上如下面的标签,只能是页面不缓存,引用的js还是会缓存的
<meta http-equiv="pragma" content="no-cache">  

@qq_5208486d 我在生产环境是用nginx服务静态文件,统一加header

问题是这url已经在页面里面,页面不改,浏览器不会再来吧?

那页面内引用的js,有缓存的情况吗 ?

@wendal
页面若缓存,问题也不大,主要是js缓存,大多数时候,是js改动比较大
你那边就是用nginx做静态资源服务,然后html上增加标签的,对吧

类似这样


location /rs { expires 8h; root /opt/nutzcn/src/main/webapp; #sendfile on; #tcp_nopush on; access_log off; add_header Pragma "public"; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; }

照你的办法,我试一下看看,有问题在说

你纠结的是在 js?v=xxx 没变的情况下如何更新js吧?? 因为变了之后根本不是事

@wendal
刚刚想了一下,能不能在过滤器上,做点手脚,明天试试看

添加回复
请先登陆
回到顶部