Исключить определенный файл (статический ресурс) из кэша |Spring Boot Web - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть приложение весенней загрузки, и ниже приведен код для регистрации обработчиков ресурсов:

@Configuration    
public class MyAppConfig extends WebMvcConfigurerAdapter {
       ...
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/resources/js/**")         
            .addResourceLocations("/resources/js/").setCachePeriod(31536000);
          //in same directory where all the js files placed,
          //I want to cache all the files in that directory
          //except for one file i.e. prop.js
          /*registry.addResourceHandler("/resources/js/prop.js")
           .addResourceLocations("/resources/js/").setCachePeriod(0);*/
       }
       ...
    }

Есть некоторые вещи, которые мне нужно понять, а именно
1. Что означает параметрaddResourceHandler означает?
2. Что означает параметр addResourceLocations?
3. Есть ли способ явно запретить кэширование prop.js?

ЕстьМожет файлы на том же уровне, где prop.js, я хочу, чтобы все другие файлы были кэшированы

1 Ответ

0 голосов
/ 26 сентября 2018
  1. В методе addResourceHandler вы указываете URL или шаблон URL.
  2. В addResourceLocations вы указываете действительный каталог, фактически содержащий (или, возможно, множество каталогов, разделенных запятыми)статические ресурсы.

Итак, в итоге вы сделали простое сопоставление между URL-адресами и каталогами на вашем веб-сервере.

, если вы хотите отключить кэширование только для файла prop.js, попробуйте следующее:

registry
    .addResourceHandler("/resources/js/**/prop.js")
    .addResourceLocations("/resources/js/")
    .setCachePeriod(0);
registry
    .addResourceHandler("/resources/js/**")
    .addResourceLocations("/resources/js/")
    .setCachePeriod(31536000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...