plugin-web-update-notification
plugin-web-update-notification copied to clipboard
cdn 强缓存下 导致 web_version_by_plugin.json 没能 更新
因为项目全部上cdn ,文件名没有改动的话,cdn 上就不会更新 这就导致请求cdn web_version_by_plugin.json 时,文件内容还是旧的 是否可以每次打包给 web_version_by_plugin.json 文件名也加上时间戳 或者版本号
https://github.com/GreatAuk/plugin-web-update-notification/blob/4f366e75b99575ca0bd778fb89351fb45c079045/packages/core/src/injectScript.ts#L82
很早之前的版本就加了,你现在用的什么版本?
这个时间戳参数 我是有看到。我们目前cdn情况是请求query参数变化,文件还是会走的缓存。类似于 vue打包后 文件名加上hash 它 文件路径变化了 就会去请求最新的文件。我不知道我描述的准不准确
.fetch(${injectFileBase}${DIRECTORY_NAME}/${JSON_FILE_NAME}.json?t=${Date.now()})
这个代码 JSON_FILE_NAME 设置为文件名加上时间戳,每次打包就是新的json文件 不知道这样合适吗
如果使用动态的版本文件名,你本地就没法从远程获取最新的版本号了, 因为你不知道请求远程服务器上的哪个 json 文件。
直接忽略 query 参数有点缓存的太厉害了吧。如果你们使用的是阿里云的 CDN, 是不是开启了 忽略参数?可以尝试关闭。或者每次发版后,刷新 CDN。
每次打包后动态的版本文件名,那请求的也是指定的文件比对才是,因为版本文件每次都是随最新的打包一起替换。 因为我们项目是集成在别的总包那里,cdn 我这里没办法配置,会比较麻烦,所以就咨询了一下你,和你讨论一下思路方案 我现在的做法是 版本json文件 不请求cdn 上 直接请求源主机上文件,那里我设置了不缓存。其他文件就走cdn