Caching on some computers

A client can’t see updates to the website even though we have Kirby caching disabled in the config (and the site/cache folder is empty). Next I thought it may be the .htaccess file. Here’s some code from that:

...
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 30 days"
# cache.appcache needs re-requests if FF 3.6 (thanks Remy ~Introducing HTML5)
ExpiresByType text/cache-manifest "access plus 0 seconds"
# document html
ExpiresByType text/html "access plus 0 seconds"
...

I thought I disabled html caching with those directives following the ExpiresDefault. I don’t know why else the client wouldn’t be seeing any of the updates?

1 Like

What updates are not showing? Are we talking about content or CSS / Javascript changes?

Thanks @jimbobrjames. It’s html content for sure, I haven’t heard from them about CSS/JS issues.

Are you sure they are accessing the site directly? There are apps for phones and desktop that speed up sites by passing them through a server in the middle, like Opera Turbo. Are you sure theres not some kind of proxy or other interference going on here?

Some mobile phone operators also do this.

To mitigate the above, you can try adding this to your .htaccess.

# ----------------------------------------------------------------------
# | Content transformation                                             |
# ----------------------------------------------------------------------

# Prevent intermediate caches or proxies (e.g.: such as the ones
# used by mobile network providers) from modifying the website's
# content.
#
# https://tools.ietf.org/html/rfc2616#section-14.9.5
#
# (!) If you are using `mod_pagespeed`, please note that setting
# the `Cache-Control: no-transform` response header will prevent
# `PageSpeed` from rewriting `HTML` files, and, if the
# `ModPagespeedDisableRewriteOnNoTransform` directive isn't set
# to `off`, also from rewriting other resources.
#
# https://developers.google.com/speed/pagespeed/module/configuration#notransform

<IfModule mod_headers.c>
     Header merge Cache-Control "no-transform"
</IfModule>

I’ll try this. I also so in the previous section you referenced (https://tools.ietf.org/html/rfc2616#section-14.9.4) a directive called “End-to-end reload.” I wonder how to implement that? Would that force a complete refresh on the client machine?

Im afraid I am not familiar with that, maybe someone else can help you here.

Is it only the client that can’t see the updates? Can other people see the updates? Does it happen with any browser?

Have they tried to clear the browser cache?

Wow, turns out it was only on that machine and effecting all browsers there. I found out the previous tech support had hard-wired the old IP address in the host file. So commenting that out and flushing the DNS solved the issue. Thanks for all the help @jimbobrjames and @texnixe!