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

Как автоматизировать изменение версии css при сохранении либо изменении файла с помощью PHP?
Может можно дописывать в конце /css/template.css?v=1 какую-либо функцию?
  • Вопрос задан
  • 103 просмотра
Решения вопроса 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.
Так же можно создать константу с номером билда и автоматически добавлять её к файлам.
А вообще, руками бы это делать. Любые функции отнимают время рендера страницы.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы