Как я могу заставить клиента не кэшировать svelte / rollup bundle.js ?

#browser-cache #svelte #rollupjs

#браузер-кэш #стройная #rollupjs

Вопрос:

Моя стройная rollup.js установка имеет index.html файл с этой головкой:

     <link rel='stylesheet' href='/build/bundle.css'><!-- svelte -->
    <link rel="stylesheet" href="/build/index.css" /><!-- tailwind -->
    <script defer src='/build/bundle.js'></script>
 

Когда я развертываю новую версию на своем веб-сервере, некоторые клиенты не получают новую bundle.js но вместо этого используйте их кэшированную копию. Какой хороший способ заставить их получать новый пакет, когда я развернул новую версию?

Самый простой способ, который я могу придумать, — добавить номер версии или хэш git commit в конец src, например:

     <link rel='stylesheet' href='/build/bundle.css?v0.1.4'><!-- svelte -->
    <link rel="stylesheet" href="/build/index.css?v0.1.4" /><!-- tailwind -->
    <script defer src='/build/bundle.js?v0.1.4'></script>
 

Но я предполагаю, что это обычная проблема, поэтому я бы предпочел спросить.

Комментарии:

1. Использование версии приложения в имени файла пакета является широко используемой практикой. Вы можете найти другие идеи здесь code-boxx.com/force-browsers-reload-javascript-css

Ответ №1:

В документах есть раздел об использовании хэшей в именах пакетов. https://rollupjs.org/guide/en/#outputentryfilenames

Комментарии:

1. Спасибо. это работает для файлов .js. Как мы можем сделать это для файлов CSS? есть идеи?