<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Aug 14, 2018, at 5:22 PM, Bryan Oliver <<a href="mailto:oliverwritescode@gmail.com" class="">oliverwritescode@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class=""><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">That should happen fairly quickly… usually faster than people are able to test. I wonder what delayed it.</blockquote></div><div class=""><br class=""></div>I think it was user error. When I sent the second email stating it worked, I had tried it on my phone (and that was the first time I had requested it from my phone, aka no cache). Then I went back to my desktop, and still no dice until I cleared cache like you mentioned.</div></div></blockquote><div><br class=""></div><div>Ah, ok. That explains it and makes me feel better.</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="font-size:12.8px" class="">Are there ways to mark things on the server so that the browsers don’t cache the .js files that we send? Because that’s the #1 source of user problems - old versions of files in the browser cache.</span></blockquote><div class=""><br class=""></div><div class="">A pretty quick solution would be to configure the Apache server. We just need to send the proper caching headers (specifically, we need apache to send the <b class="">no-cache </b>header, the browser will handle the rest).</div><div class=""><br class=""></div><div class=""><b class="">One method to do so here:</b></div><div class=""><br class=""></div><div class="">Add a .htaccess file to the root of the web directory, and add the following:</div><div class=""><br class=""></div><div class=""><div class=""><FilesMatch "^(list_lib|jquery.min)\.js$"></div><div class=""><span style="white-space:pre-wrap" class="">    </span>Header set Cache-Control "no-cache"</div><div class=""><span style="white-space:pre-wrap" class="">      </span>Header set Pragma "no-cache"</div><div class=""></FilesMatch></div></div><div class=""><br class=""></div><div class="">To add more files to the caching rule, just add them in the parens above, separated by a pipe.</div><div class=""><br class=""></div><div class="">If you want to do it for all of the files just use:</div><div class=""><br class=""></div><div class=""><FilesMatch "\.(html|js|css)$"></div><div class="">        ...</div><div class=""></FilesMatch></div><div class=""><br class=""></div><div class="">Happy to discuss further or help implement on the server. My one concern about the above approach is how does the stat.js file get created? Is it made on request? Or is it updated in some sort of user directory each time the server gets a cloud sync? If it's made on request, we'll just need to make sure the response handler is also giving the no-cache header. </div></div></div></blockquote><div><br class=""></div>The files are created on every push to a user's repo, but are otherwise static.</div><div>I'll try your suggestion. Thanks.</div><div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="color:rgb(33,33,33)" class="">There are many more areas where we would love to get help - your areas of expertise are a bit vague, can you provide some more background (if you don’t want to do that in public than personal email to me is fine, too).</span></blockquote><div class=""><br class=""></div><div class="">I'll shoot you an email.  </div></div></div></blockquote><br class=""></div><div>Great!</div><div><br class=""></div><div>/D</div><br class=""></body></html>