Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cdn 强缓存下 导致 web_version_by_plugin.json 没能 更新 #67

Open
Guoxm521 opened this issue Nov 14, 2024 · 4 comments
Open

cdn 强缓存下 导致 web_version_by_plugin.json 没能 更新 #67

Guoxm521 opened this issue Nov 14, 2024 · 4 comments

Comments

@Guoxm521
Copy link

Guoxm521 commented Nov 14, 2024

因为项目全部上cdn ,文件名没有改动的话,cdn 上就不会更新 这就导致请求cdn web_version_by_plugin.json 时,文件内容还是旧的 是否可以每次打包给 web_version_by_plugin.json 文件名也加上时间戳 或者版本号

@GreatAuk
Copy link
Owner

.fetch(`${injectFileBase}${DIRECTORY_NAME}/${JSON_FILE_NAME}.json?t=${Date.now()}`)

很早之前的版本就加了,你现在用的什么版本?

@Guoxm521
Copy link
Author

Guoxm521 commented Nov 15, 2024

这个时间戳参数 我是有看到。我们目前cdn情况是请求query参数变化,文件还是会走的缓存。类似于 vue打包后 文件名加上hash 它 文件路径变化了 就会去请求最新的文件。我不知道我描述的准不准确
.fetch(${injectFileBase}${DIRECTORY_NAME}/${JSON_FILE_NAME}.json?t=${Date.now()})
这个代码 JSON_FILE_NAME 设置为文件名加上时间戳,每次打包就是新的json文件 不知道这样合适吗

@GreatAuk
Copy link
Owner

如果使用动态的版本文件名,你本地就没法从远程获取最新的版本号了, 因为你不知道请求远程服务器上的哪个 json 文件。

直接忽略 query 参数有点缓存的太厉害了吧。如果你们使用的是阿里云的 CDN, 是不是开启了 忽略参数?可以尝试关闭。或者每次发版后,刷新 CDN

@Guoxm521
Copy link
Author

每次打包后动态的版本文件名,那请求的也是指定的文件比对才是,因为版本文件每次都是随最新的打包一起替换。
因为我们项目是集成在别的总包那里,cdn 我这里没办法配置,会比较麻烦,所以就咨询了一下你,和你讨论一下思路方案
我现在的做法是 版本json文件 不请求cdn 上 直接请求源主机上文件,那里我设置了不缓存。其他文件就走cdn

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants