Skip to content

Figure out why browser caches aren't updating for new website #70

Open
@myShoggoth

Description

@myShoggoth
Contributor

I've seen it myself and it has been reported by many, I often have to control-refresh to get the new site. Is there something we need to add to the metadata of the site to tell browsers to clear the cache or limit it?

Activity

added this to the Update 1 milestone on May 29, 2021
Kleidukos

Kleidukos commented on May 29, 2021

@Kleidukos
Contributor

Yeah, usually you have to configure your web assets build too prepend a hash of the bundle's content to the filename, so that when the content changes, the path of the static asset in the HTML changes too, which is a nice cache-busting technique

tomjaguarpaw

tomjaguarpaw commented on May 29, 2021

@tomjaguarpaw
Contributor

Do any web experts know if there's some server setting (that perhaps goes to the browser in an HTTP header) that causes the browser to not bother looking for page changes? If I change a page on my own personal website then a simple refresh (not even a Ctrl-refresh, let alone deleting worker processes!) is enough to get the new page. It makes me wonder if something is misconfigured on the server.

Kleidukos

Kleidukos commented on May 29, 2021

@Kleidukos
Contributor

Maybe we can just ask IOHK? I've hit the original page again today, served from Netlify, so maybe CDN configuration issues at play here as well?

Fresheyeball

Fresheyeball commented on May 29, 2021

@Fresheyeball

Best practice is as follows

Routes to pages need a no-cache header, so the browser always fetches the html and never caches it.

All routes to static assests should be set to cache with an infinite ttl, then the assests links need to contain a hash of themselves to force redownload and recache when it changes.

I don't know what GitHub.io exposes for header controls, but if you like I can furnish nginx config that embodies the best practices mentioned above.

simonpj

simonpj commented on Jun 2, 2021

@simonpj

I can't get the new page at all. Just the old one, every time.

myShoggoth

myShoggoth commented on Jun 3, 2021

@myShoggoth
ContributorAuthor
liskin

liskin commented on Jun 9, 2021

@liskin

It's a service worker: #61 (comment)

cdsmith

cdsmith commented on Jun 11, 2021

@cdsmith

I'm seeing this as well. I get what I assume is the older design (solid purple background), and navigation is completely broken. When I Shift-Refresh, I get what I guess is the new design (white background) and navigation works again. But Refresh again reverts to the old design and broken navigation. I haven't yet tried killing the service worker, but I have rebooted my machine several times since my visit to the old design, and it's still broken, so I can't imagine it's an old process causing it. I'll investigate and let you know.

It looks like this will be fairly widespread, judging from the number of reports and the fact that I didn't do anything unusual except visit the page several times.

cdsmith

cdsmith commented on Jun 11, 2021

@cdsmith

I haven't yet tried killing the service worker, but I have rebooted my machine several times since my visit to the old design, and it's still broken, so I can't imagine it's an old process causing it. I'll investigate and let you know.

Okay, unregistering the service worker worked and fixed the site for me. Just stopping it did not (as I expected).

cdsmith

cdsmith commented on Jun 11, 2021

@cdsmith
Kleidukos

Kleidukos commented on Jun 11, 2021

@Kleidukos
Contributor

Can confirm it works very well here

tomjaguarpaw

tomjaguarpaw commented on Aug 16, 2021

@tomjaguarpaw
Contributor

Here are recipes for Chrome and Firefox:

Firefox

Go to URL about:serviceworkers
Find haskell.foundation
Click Unregister

Chrome

Go to URL chrome://serviceworker-internals/
Find haskell.foundation
Click Unregister

tomjaguarpaw

tomjaguarpaw commented on Aug 16, 2021

@tomjaguarpaw
Contributor

I found a StackOverflow answer that seems to describe how we can resolve the problem. It requires knowing the filename of the file from which the service worker was loaded. I can only see two ways to find out:

  1. If you have a browser that is still showing the old website please follow my instructions above and report the "script" corresponding to the haskell.foundation entry.

  2. We have the repository for the old website. I can't see anything that is obviously a service worker script but maybe someone else can. I believe IOHK generously contributed this site. Perhaps someone there can tell us.

tomjaguarpaw

tomjaguarpaw commented on Aug 16, 2021

@tomjaguarpaw
Contributor

Having an outdated site is terrible from a communications point of view. We really ought to increase the priority of this ticket.

tomjaguarpaw

tomjaguarpaw commented on Aug 16, 2021

@tomjaguarpaw
Contributor

Michael Snoyman has a browser still showing the old website and confirms that the old service worker seems to be running from https://haskell.foundation/sw.js. I can't see how such a file could have been created from the old repository. Perhaps it's a node, gatsby or Netlify feature.

Anyway, I believe that we can now implement the StackOverflow answer that I linked above. I suggest that this is given high priority.

goldfirere

goldfirere commented on Aug 16, 2021

@goldfirere
Contributor

Thanks @tomjaguarpaw for finding that critical recipe to fix this! Hopefully it works. I'm still also getting the old site.

tomjaguarpaw

tomjaguarpaw commented on Oct 13, 2021

@tomjaguarpaw
Contributor

@goldfirere Does this fix things on your browser?

goldfirere

goldfirere commented on Oct 13, 2021

@goldfirere
Contributor

The fix seems to work for me, but @mboes says it doesn't for him. I did force-refresh once this morning. Maybe the fix means that one force-refresh is enough? Previously, I had to force-refresh on every load.

added a commit that references this issue on Feb 25, 2025
40e78f4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ImportantHigh prioritybugSomething isn't workinggood first issueGood for newcomershelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @myShoggoth@liskin@cdsmith@simonpj@Fresheyeball

        Issue actions

          Figure out why browser caches aren't updating for new website · Issue #70 · haskellfoundation/haskellfoundation.github.io