Google Chrome продолжает кэшировать ответ на запрос js, даже если ему сказано не делать этого (используя Ruby в Rails) - PullRequest
0 голосов
/ 08 мая 2020

В моем приложении rails я не могу понять, почему (только в производственной среде) Google Chrome продолжает кэшировать ответ на запрос javascript. Например, вот мой javascript:

    if(active > 0){
        refresh = setInterval(function(){
                path = window.location.pathname;
                active = path.search(/\/XYZ\/*/g);
                if(active > 0){
                        $.ajax({
                            type: 'GET',
                            url: "/refresh_log.js",
                            data: { 'XYZ': $("#XYZ").val() },
                            success: function(data){
                            }
                        }); // end of ajax
                }
                else{
                  clearInterval(refresh);
                }
                }, 10000);
    }
  else{
    clearInterval(refresh);
  }

Он настроен на отправку запроса на /refresh_log.js каждые 10 секунд. Я заметил, что если я запускаю свое приложение Rails в режиме разработки, ответ всегда будет в байтах XYZ с любым содержимым. Однако в производственном режиме он выполняет первоначальный запрос правильно, а затем каждый запрос после этого кэшируется, как показано ниже:

enter image description here

У меня это в файл config/environments/production.rb:

  config.cache_classes = true
  config.eager_load = true
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = false
  config.public_file_server.enabled = true
  config.assets.js_compressor = Uglifier.new(:harmony => true)
  config.assets.compile = true
  config.active_storage.service = :local

Есть идеи, как на самом деле отключить кеширование в продакшене? Это действительно делает многие другие вещи небрежными - например, некоторые CSS, которые используются во всем приложении, включая домашнюю страницу. Он не обновляется после входа в систему, потому что он загружается из кеша и требует от меня «refre sh» страницы, чтобы все отображалось правильно.

...