отключить ETAG для ответов JSON, но включить ETAG для статических активов - PullRequest
0 голосов
/ 26 мая 2018

В нашем промежуточном программном обеспечении Express у нас есть вызов:

 app.enable('etag');

проблема в том, что для запросов JSON клиент получит код состояния 304 для запросов JSON, который всегда должен быть переоценен /повторно отправлено.

Итак, используя промежуточное программное обеспечение Express, я могу задать вопрос, как включить etag для статических ресурсов, но отключить его для запросов JSON?

Возможно, мне придется проверить заголовки.для каждого запроса и включать / отключать etags для каждого запроса?

1 Ответ

0 голосов
/ 26 мая 2018

Таким образом, кажется, что в работе это будет работать:

app.enable('etag');

app.use("/public", express.static(path.join(__dirname, "..", "public")));

app.use(function (req, res, next) {
  // we don't want to cache any JSON response
  res.setHeader('Cache-Control', 'no-cache, no-store');
  next();
});

app.use(function(req,res){
   res.json({some:'this will never be cached'});
});

Я думаю, что это позволит разрешить кэширование статических ресурсов клиентом, но оно никогда не будет кэшировать какие-либо ответы JSON вклиент.

...