Skip to content

Commit 6ac4b8a

Browse files
Nikola HristovNikola Hristov
authored andcommitted
fix: Implement cache-busting for script resources
Added cache-busting mechanism to prevent browser caching of updated scripts. Introduced Bust utility function that appends timestamp parameter to URLs using `Date.now()`. Modified all script tags in Application.astro to use this function, ensuring fresh resource loading after deployments. Additionally added 'ulid' v3.0.0 to package.json dependencies for future unique identifier generation needs. While not directly used in this commit, it prepares for upcoming features requiring collision-resistant IDs.
1 parent 5a34919 commit 6ac4b8a

78 files changed

Lines changed: 143 additions & 105 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

β€ŽSource/pages/Application.astroβ€Ž

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,9 @@ const Default = {
143143
144144
// productQualityChangeHandler: undefined,
145145
} satisfies IWorkbenchConstructionOptions as IWorkbenchConstructionOptions;
146+
147+
const Bust = (Base: string): string =>
148+
`${Base}${Base.includes("?") ? "&" : "?"}v=${encodeURIComponent(Date.now())}`;
146149
---
147150

148151
<Layout>
@@ -157,23 +160,36 @@ const Default = {
157160
globalThis._VSCODE_FILE_ROOT = `${Site}/Static/Application/`;
158161
</script>
159162

160-
<script is:inline type="module" src="/Worker/CSS/Load.js" slot="Head" defer
161-
></script>
163+
<script
164+
is:inline
165+
type="module"
166+
src={Bust("/Worker/CSS/Load.js")}
167+
slot="Head"
168+
defer></script>
162169

163-
<script is:inline type="module" define:vars={{ Worker }} slot="Head">
170+
<script
171+
is:inline
172+
type="module"
173+
define:vars={{ Worker: Bust(Worker) }}
174+
slot="Head"
175+
>
164176
// @ts-expect-error
165177
window._WORKER = Worker;
166178
</script>
167179

168-
<script is:inline type="module" src="/Worker/Policy.js" slot="Head"
180+
<script is:inline type="module" src={Bust("/Worker/Policy.js")} slot="Head"
169181
></script>
170182

171-
<script is:inline type="module" src="/Worker/Register.js" slot="Head" defer
172-
></script>
183+
<script
184+
is:inline
185+
type="module"
186+
src={Bust("/Worker/Register.js")}
187+
slot="Head"
188+
defer></script>
173189

174190
<script
175191
is:inline
176192
type="module"
177-
src="/Static/Application/vs/code/browser/workbench/workbench.js"
193+
src={Bust("/Static/Application/vs/code/browser/workbench/workbench.js")}
178194
defer></script>
179195
</Layout>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<!DOCTYPE html><html class=no-js data-beasties-container dir=ltr lang=en><head><script type=module>document.documentElement.classList.remove("no-js"),document.documentElement.classList.add("js")</script><title></title><meta charset=utf-8><meta content name=description><meta content="width=device-width,initial-scale=1" name=viewport><meta content=#ffffff name=theme-color><meta content="telephone=no" name=format-detection><meta content=on name=twitter:dnt><meta data-settings={&#34;remoteAuthority&#34;:&#34;&#34;,&#34;serverBasePath&#34;:&#34;/&#34;,&#34;connectionToken&#34;:&#34;&#34;,&#34;enableWorkspaceTrust&#34;:true,&#34;settingsSyncOptions&#34;:{&#34;enabled&#34;:false},&#34;productConfiguration&#34;:{&#34;embedderIdentifier&#34;:&#34;desktop&#34;,&#34;nameShort&#34;:&#34;FIDDEE&#34;,&#34;nameLong&#34;:&#34;FIDDEE&#34;,&#34;applicationName&#34;:&#34;fiddee&#34;},&#34;developmentOptions&#34;:{&#34;logLevel&#34;:2,&#34;enableSmokeTestDriver&#34;:false}} id=vscode-workbench-web-configuration><link crossorigin=use-credentials href=/Manifest.json rel=manifest><script type=module>const Site="https://tauri.localhost/";globalThis._VSCODE_FILE_ROOT=`${Site}/Static/Application/`</script><script type=module src=/Worker/CSS/Load.js defer=defer></script><script type=module>const Worker="/Worker.js?BASE_REMOTE=https%3A%2F%2Ftauri.localhost%2F";window._WORKER=Worker</script><script type=module src=/Worker/Policy.js></script><script type=module src=/Worker/Register.js defer=defer></script></head><body aria-label><script type=module src=/Static/Application/vs/code/browser/workbench/workbench.js defer=defer></script></body></html>
1+
<!DOCTYPE html><html class=no-js data-beasties-container dir=ltr lang=en><head><script type=module>document.documentElement.classList.remove("no-js"),document.documentElement.classList.add("js")</script><title></title><meta charset=utf-8><meta content name=description><meta content="width=device-width,initial-scale=1" name=viewport><meta content=#ffffff name=theme-color><meta content="telephone=no" name=format-detection><meta content=on name=twitter:dnt><meta data-settings={&#34;remoteAuthority&#34;:&#34;&#34;,&#34;serverBasePath&#34;:&#34;/&#34;,&#34;connectionToken&#34;:&#34;&#34;,&#34;enableWorkspaceTrust&#34;:true,&#34;settingsSyncOptions&#34;:{&#34;enabled&#34;:false},&#34;productConfiguration&#34;:{&#34;embedderIdentifier&#34;:&#34;desktop&#34;,&#34;nameShort&#34;:&#34;FIDDEE&#34;,&#34;nameLong&#34;:&#34;FIDDEE&#34;,&#34;applicationName&#34;:&#34;fiddee&#34;},&#34;developmentOptions&#34;:{&#34;logLevel&#34;:2,&#34;enableSmokeTestDriver&#34;:false}} id=vscode-workbench-web-configuration><link crossorigin=use-credentials href=/Manifest.json rel=manifest><script type=module>const Site="https://tauri.localhost/";globalThis._VSCODE_FILE_ROOT=`${Site}/Static/Application/`</script><script type=module src="/Worker/CSS/Load.js?v=1746272124266" defer=defer></script><script type=module>const Worker="/Worker.js?BASE_REMOTE=https%3A%2F%2Ftauri.localhost%2F&v=1746272124266";window._WORKER=Worker</script><script type=module src="/Worker/Policy.js?v=1746272124266"></script><script type=module src="/Worker/Register.js?v=1746272124266" defer=defer></script></head><body aria-label><script type=module src="/Static/Application/vs/code/browser/workbench/workbench.js?v=1746272124266" defer=defer></script></body></html>
Binary file not shown.

β€ŽTarget/Static/Application/vs/base/common/codecs/baseDecoder.jsβ€Ž

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

β€ŽTarget/Static/Application/vs/base/common/codiconsLibrary.jsβ€Ž

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

β€ŽTarget/Static/Application/vs/base/common/tfIdf.jsβ€Ž

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
Β (0)