Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > HTML и CSS
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2020, 13:15   #1
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
Вопрос При обновлении внешнего файла .css и при повторном открытии страницы браузера стили остаются такими же.

При обновлении внешнего файла .css и при повторном открытии страницы браузера стили остаются такими же, но если открыть в другом браузере, обновление ТОЛЬКО один раз осуществляется. Хостинг Beget, какие причины могут быть?
Мaкс вне форума Ответить с цитированием
Старый 05.05.2020, 14:08   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,220
По умолчанию

Браузер кеширует файл со стилями. Нажать Ctrl + F5 в браузере для обновления.
Arigato на форуме Ответить с цитированием
Старый 05.05.2020, 14:14   #3
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Браузер кеширует файл со стилями. Нажать Ctrl + F5 в браузере для обновления.
Можно ли перезаписать без взаимодействия со стороны пользователя сайта? Php может что то предлагает?
Мaкс вне форума Ответить с цитированием
Старый 05.05.2020, 15:20   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,220
По умолчанию

Кеширует сам браузер. Можно отдавать css-файл динамически и запретить кеширование через HTTP-заголовки.
Arigato на форуме Ответить с цитированием
Старый 06.05.2020, 17:03   #5
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
отдавать css-файл динамически
Расскажите как?
Мaкс вне форума Ответить с цитированием
Старый 06.05.2020, 18:06   #6
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,220
По умолчанию

Как вариант:
Код:
<?php
header ("Content-type: text/css;charset=utf-8");
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
header ("Last-Modified: " . gmdate ("D, d M Y H:i:s") . " GMT");
echo file_get_contents("style.css");
?>
Arigato на форуме Ответить с цитированием
Старый 06.05.2020, 18:08   #7
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Cache-Control: no-cache
Это отключить кеш?
Мaкс вне форума Ответить с цитированием
Старый 06.05.2020, 19:07   #8
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Отключать кеш по моему плохая идея. Лучше идея передать ключ-значение в путь к файлу.
Код:
/scripts/cap.js?ver=1
Потом поменять 1 на 2 после внесения изменений., потом 3 и т.д.Я это автоматизировал с помощью PHP. Но всё же инкрементировать только вручную умею, скрипт, который будет автоматически будет увеличивать этот ключ не нашёл на данный момент.
Мaкс вне форума Ответить с цитированием
Старый 06.05.2020, 20:54   #9
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,220
По умолчанию

Как вариант так тоже можно. Только не пойму зачем искать какой-то скрипт? Вы пару строк самостоятельно на PHP написать можете?
Arigato на форуме Ответить с цитированием
Старый 07.05.2020, 09:54   #10
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Вы пару строк самостоятельно на PHP написать можете?
Да блин, я сказал, что написал!
Цитата:
Сообщение от Мaкс Посмотреть сообщение
Я это автоматизировал с помощью PHP.
---
Но я придумал идею в разы лучше, чем от единицы до x писать. Нужно писать текущее время. Работает, только что проверил.
version.php:
Код:
<?php
    function getVersion($pageWay) {
        return $pageWay."?ver=".strval(time());
    }
?>
index.php (где вызывается):
Код:
<!-- Это вы пишите в начале странички -->
<?php include '/home/s/s913704h/s913704h.beget.tech/public_html/scripts/version.php'; ?>
<!-- Пример вызова -->
<link rel="stylesheet" href="<?php echo getVersion('../styles/main.css'); ?>">
Работает у меня на 100%
Мaкс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена текста при обновлении страницы maybess JavaScript, Ajax 1 05.03.2019 17:22
Смена get параметра ссылки при обновлении страницы Grasss PHP 2 03.11.2017 12:04
Как получить информацию об обновлении страницы с оповещением? Karyuudo PHP 5 28.01.2015 18:20
Сохранить данные при обновлении страницы apx_angel JavaScript, Ajax 2 11.10.2011 15:54
Возникает ошибка исключения при повторном открытии формы Nik_K БД в Delphi 10 25.04.2011 23:49