Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Deploying a JavaScript file does not guarantee that the browser is requesting it from the right place—or that it is seeing the latest response. Start with the exact script URL in the browser’s Network panel, then compare that path and response with the files and routing actually deployed. The cause may be a missing or misreferenced artifact, an HTTP or managed cache, or a service worker serving its own cached response.
What a 404 tells you—and what it does not
A 404 Not Found means the server responding to the request could not find the requested resource. It does not, by itself, explain why: the URL could be wrong, the file could be absent from the deployed output, routing could point elsewhere, or a cache layer could be returning a 404 response.
Likewise, uploading a new bundle does not change what a page requests. If the HTML or a runtime manifest still names an old file, the browser will keep asking for that URL even when a newer file exists under a different name.
Trace the request before changing cache settings
- Find the actual request. Open the browser’s developer tools, select the Network panel, reload the page, and locate the script request that fails. Record its full URL, status, response body, and any indication of whether the response came from the network, browser cache, or a service worker. The URL is more useful than the filename you expected the page to request.
- Compare the URL with the deployed files. Check the entire path and filename, including the build hash, capitalization, base path, and deployment prefix. Then compare it with the build output that was actually uploaded and the host’s static-file or routing configuration. A file can exist in the build directory but still be missing from the deployed location or exposed under a different path.
- Inspect response headers. Look at
Cache-Control,Age,ETag, andLast-Modified. HTTP caches can reuse a response while it is fresh; once stale, they may validate it with the origin. A missing explicit cache policy does not always mean a response is never cached, because caches can apply heuristic freshness rules. See MDN’s HTTP caching guide. - Check for a controlling service worker. If one controls the page, inspect its fetch handler, the Cache API entries it uses, and its install and activate logic. A worker may serve a stored response or fetch from the network according to application code; a normal reload may therefore leave the relevant cached response untouched. MDN documents the Service Worker API, the Cache API, and service-worker caching patterns.
- Change the layer the evidence points to. Correct a wrong file path or deployment mapping; update the HTML or manifest if it references an obsolete bundle; use your hosting provider’s purge or invalidation controls for a managed cache; or revise the service worker’s cache version, update strategy, or activation cleanup. Do not treat these as interchangeable “clear cache” actions.
Tell the cache layers apart
When a script continues to fail after deployment, distinguish four questions: who supplied the response, what freshness or validation policy applied, which URL the page requested, and how that layer updates or invalidates stored data.
Free tools Windows power users keep installed
One-click scans. No signup required.
#1 Best Overall
| Layer or issue | What to inspect | What a targeted fix changes |
|---|---|---|
| URL or deployment mismatch | Requested path and filename versus deployed artifact and static-file mapping | Correct the artifact location, routing, or page reference |
| HTTP or browser cache | Response source and headers such as Cache-Control, Age, and validators |
Adjust freshness or validation behavior; use the relevant cache controls |
| Managed cache, such as a CDN | Provider-specific cache behavior and purge controls | Use the provider’s documented invalidation mechanism when needed |
| Service worker | Fetch handler, stored cache entries, and install/activate update logic | Update its strategy or version and remove obsolete entries where appropriate |
Prevent old-bundle and missing-file mismatches
Give changing assets distinct URLs
For static files that change, MDN recommends cache busting: include a version or content hash in the asset URL. A new build then has a distinct cache key instead of competing with older bytes stored under the same URL. Do not overwrite an asset that is meant to be immutable and expect caches to infer that its contents changed.
Keep the HTML entry point current
Versioned filenames help only if the page discovers the current filename. Let immutable, versioned assets have a long freshness lifetime, while allowing the main HTML document to revalidate so it can point to the current asset names. This pairing is described in MDN’s HTTP caching guidance.
Rank #2
Use the right invalidation mechanism
Changing a cache header is not a universal purge command. MDN’s HTTP caching guide states: “The HTTP Caching specification essentially does not define a way to explicitly delete a cache.” Existing entries may require revalidation or a separate invalidation mechanism. Managed caches may provide dashboard or API purge controls; service workers can remove entries through application logic.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Why the precise cause depends on your deployment
The same visible failure can arise from different combinations of URL, deployment, routing, and caching behavior. The request URL, response and headers, deployed artifact list, hosting or CDN configuration, and service-worker code are what distinguish them. Without those details, a 404 cannot establish which layer is responsible.
Recommended Free Tools
Quick Recap
Best Value
Rank #4
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




