Кэш это всегда проблема, по этому продвинутые разработчики давно уже научились его сносить принудительно с помощью версии файлов. Каждая новая сборка изменяет версию, например с 1 на 2. Далее добавляем версию в путь к статическим ресурсам, примерно так:
<img src="image.png?v=2" alt="" />
<!-- или генерируем имена файлов с учетом версии -->
<img src="image_v2.png" alt="" />
Ну и далее, каждый раз при обновлении и сборке проекта, увеличиваем номер (очень часто вместо простого номера используется случайно сгенерированный хэш или текущая дата в секундах (unix-time).
Посмотрите например в исходники тостера, вы увидите, что здесь, в имена статических файлов, добавляется хэш:
<link rel="stylesheet" href="https://habracdn.net/toster/frontend.47dba5ea-12bc-11e6-81cb-38eaa71001f0.css">