Веб-сервер Gulp не может загрузить кеш-ресурс JS

У меня есть куча файлов JS, которые были проверены во время развертывания для очистки кэша JS. Похоже на это.

<script src="dist/js/bundle.js?v=ju29jj39983eddd2"></script>

Я выполняю минификацию и сжатие, используя глоток. После того, как это будет сделано, я сохраню их в локальном каталоге, используя имя файла с добавленными значениями версии. Вот код

gulp.task('bundle', function() {
 return gulp
   .src(config.app_scripts) // app_scripts is an array containing list of files
   .pipe(gutil.env.type === 'production' ? uglify({mangle: true}) : gutil.noop())
   .pipe(gutil.env.type === 'production' ? concat('b-bundle.js?v=' + secureRand) : concat('b-bundle.js'))
   .pipe(gulp.dest('dist/js'));
});

Я обслуживаю активы в среде разработки, используя gulp-webserver. Вот конфигурация. Тем не менее, он не выбирает JS-файл в каталог. Это просто откат к index.html при загрузке страницы.

//Local webserver
gulp.task('webserver', function() {
  gulp.src(__dirname + '/client')
    .pipe(webserver({
      livereload: false,
      open: false,
      directoryListing: false,
      fallback: 'index.html',
      proxies: proxiesConf
  }));
});

Я не уверен, что вызывает такое поведение. Я высоко ценю, если кто-то может мне помочь.

0 ответов

В настоящее время не рекомендуется выполнять очистку кеша со строками запроса в соответствии с:

Большинство прокси, особенно Squid до версии 3.0, не кэшируют ресурсы с символом "?" в их URL, даже если в ответе присутствует заголовок Cache-control: public. Чтобы включить кэширование прокси для этих ресурсов, удалите строки запроса из ссылок на статические ресурсы и вместо этого закодируйте параметры в самих именах файлов.

- https://gtmetrix.com/remove-query-strings-from-static-resources.html

Вместо этого вы должны (а) позволить веб-серверу аннулировать кеш, добавив в заголовок: Cache-Control: no-cache, no-store, must-revalidateили (б) добавление хэша содержимого к имени файла ресурса.

<script src="assets/js/edf-d41d8cd98f00b204e9800998ecf8427e.min.js" />

вместо того

<script src="assets/js/edf.min.js" />

- https://medium.com/@codebyamir/a-web-developers-guide-to-browser-caching-cc41f3b73e7c

Удачи:)

Другие вопросы по тегам