js静态资源修改后,有些用户生效,有些不生效

我将js的ajax请求代码写入到了一个js文件中,在页面中导入。

因为重构原因,修改了该js,url修改了,但是用户反馈有404,我查看代码后发现,用户请求的url是旧版本的url。

因为我的url只在js中出现过,那么应该是js的问题。

以下是代码截图:

新版本:

image.png

旧版本:

image.png

引用到的地方

image.png

我发现有不少用户跳转的是teacher/getTestListByTeacherName。之后,我即使将旧版本对应的action添加了上去,再使用System.out.println()打印出有问题跳转的用户。

public void getTestByName() {
   String teacherName = getTrim("name");
   getTest(teacherName);
}

/**
 * 不推荐使用,
 * 此处为了兼容旧版本
 */
@Deprecated
public void getTestListByTeacherName() {
   String teacherName = getTrim("teacherName");

   System.out.println("有问题的跳转,老师为 = " + teacherName);
   getTest(teacherName);
}

发现有不少。

我以为是缓存的问题,接下来是我的解决方法:

  1. 将所有的devmode改为true,包括undertow,config中的devmode,以及engine的devmode。

    无效

  2. 将js文件换个名字,然后在使用到的html中重新调用。

    好像是有了一点点效果吧,反正旧版本的有问题的跳转依然存在。

  3. 更换服务器上该文件夹的名字

    无效

  4. 重启服务器

    无效

求大佬分析一下。

源码链接

评论区

lyh061619

2020-01-06 23:40

先排除是否存在其他缓存任务,其次可以考虑是否因模自带板缓存引起;JFinal框架默认是开启模板缓存,开发调试可通过此public void configEngine(Engine me) {me.setDevMode(true);}配置关闭缓存模板即可。详细请看文档:https://jfinal.com/doc/6-2

xiuj

2020-01-07 09:45

用户部分生效,部分不生效,是否可以跟踪是不是浏览器的缓存问题。看了你的描述预计也没用到nginx,也不涉及其他相关会影响到的技术了。

zeroabc

2020-01-07 10:54

资源地址后面加个?t=20200107(每次文件更新变化都改)

流觞w曲水

2020-01-08 17:52

@lyh061619 所有缓存我都改了,可以查看我的解决办法,是无效的