Задать вопрос

Как автоматизировать изменение версии css?

Как автоматизировать изменение версии css при сохранении либо изменении файла с помощью PHP?
Может можно дописывать в конце /css/template.css?v=1 какую-либо функцию?
  • Вопрос задан
  • 114 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
php666
@php666
PHP-макака
last modified
css отдавать через php по виртуальным путям
у меня вот так сделано
общий алгоритм такой:
берем необходимый файл, смотрим время его модификации по filemtime, преобразуем в $date
далее проверка:
public static function IfModifiedSince(\DateTime $date): bool
    {
        if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
            $if_modified_since = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 5));

            if ($if_modified_since && $if_modified_since >= $date->getTimestamp()) {
                return false;
            }
        }

        return true;
    }

клиентский код:
$resource - объект Css, Js или картинки. Вот базовый класс.
if (!Request::IfModifiedSince($resource->getModificationTime())) {
                // отдаем 304 заголовок
                return $this->getResponse()->setHttpStatusCode(304);
            }

            $this->getResponse()
                ->setHeader(Response::HEADER_CONTENT_TYPE, 'text/css; charset=utf-8')
                ->setHeader('Last-Modified', $resource->getModificationTime()->formatHttpDate())
                ->setHeader('Cache-Control', 'no-cache, must-revalidate');
                // выводим файл
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
Можете использовать filemtime.
Так же можно создать константу с номером билда и автоматически добавлять её к файлам.
А вообще, руками бы это делать. Любые функции отнимают время рендера страницы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽