Проблема в том, что браузер кеширует ваш javascript, css и изображения и, следовательно, не будет знать, изменили ли вы что-либо на сервере, пока не истечет срок действия кэша.
Например, предположим, у вас есть файл JS с именем script.js. Согласно следующим правилам, указанным в файле htaccess,
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
файлы javascript кэшируются в течение месяца, и, следовательно, новые запросы для файлов JS не будут запрашиваться в течение 1 месяца, если только кэш не очищен вручную.
Как решить эту проблему.
Предполагая, что ваше имя файла - script.js, в файле HTML вы должны указать его как
<script src="includes/script.100.js" type="text/javascript"></script>
или
<link rel="stylesheet" type="text/css" href="includes/style.100.css" />
100 может быть любым числом. Я обычно увеличиваю, если с 1, 2, 3 .. и т. Д. (Номер версии, чтобы быть точным).
Теперь в моем htaccess есть что-то вроде
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^includes/style\.[\d]+\.css$ /includes/style.css [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^includes/script\.[\d]+\.js$ /includes/script.js [L]
Приведенные выше два условия гарантируют, что используется фактический файл, независимо от того, какое число используется между именем файла и типом файла.
Это гарантирует, что каждый раз, когда вы вносите изменения, после изменения номера версии, весь ваш старый кэш истекает, и все пользователи видят последний код.