From 6ff0faae91999bb196ea487e3dbed49a575c8882 Mon Sep 17 00:00:00 2001 From: David Glasser Date: Mon, 17 Aug 2015 11:03:23 -0700 Subject: [PATCH] Don't cache an error that is served as 200 --- packages/webapp/webapp_server.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/webapp/webapp_server.js b/packages/webapp/webapp_server.js index d5b1d5c586..0b3d9eda99 100644 --- a/packages/webapp/webapp_server.js +++ b/packages/webapp/webapp_server.js @@ -659,8 +659,13 @@ var runWebAppServer = function () { if (request.url.query && request.url.query['meteor_css_resource']) { // In this case, we're requesting a CSS resource in the meteor-specific // way, but we don't have it. Serve a static css file that indicates that - // we didn't have it, so we can detect that and refresh. + // we didn't have it, so we can detect that and refresh. Make sure + // that any proxies or CDNs don't cache this error! (Normally proxies + // or CDNs are smart enough not to cache error pages, but in order to + // make this hack work, we need to return the CSS file as a 200, which + // would otherwise be cached.) headers['Content-Type'] = 'text/css; charset=utf-8'; + headers['Cache-Control'] = 'no-cache'; res.writeHead(200, headers); res.write(".meteor-css-not-found-error { width: 0px;}"); res.end();