Динамически включать css или Js-файл, используя php

Каждый раз, когда Gulp изменяет файлы CSS или JS, он сохраняет имя выходного файла так же, как и раньше. Как браузер узнает, что файл был изменен и ему нужно перезагрузить css и JS-файлы?

Чтобы решить эту проблему, я решил использовать следующий плагин Gulp:

https://github.com/sindresorhus/gulp-rev

он переименовывает файл активов, добавляя хэш хэда к именам файлов

unicorn.css => unicorn-098f6bcd.css 

есть ли способ включить файл активов с помощью php динамически? Имя актива будет меняться каждый раз при добавлении нового контента.

    Related of "Динамически включать css или Js-файл, используя php"

    вместо переименования файла вы можете отправить отпечаток пальца. если изменения файла, последние измененные изменения тоже. поэтому вы можете легко использовать последний модифицированный файл в качестве отпечатка пальца:

     public function putStyle($fileName) { $fp = filemtime($fileName); // finger print by file last modified $fileName .= '?' . $fp; echo '<link rel="stylesheet" href="' . $fileName . '"/>'; } 

    Я нашел способ включить файл динамически. его быстрый (занимает около 1,5 мс) и отлично работает.

    PHP имеет встроенную функцию (glob) для поиска файлов. Согласно PHP docs « Функция glob () ищет все шаблоны, соответствующие шаблону, в соответствии с правилами, используемыми функцией libc glob (), которая аналогична правилам, используемым общими оболочками ».

    Glob ()

     // css path would be the full physical path of your css directory $cssPath = '/css/*.css'; $stylesheets = glob($cssPath, GLOB_NOSORT); // link all stylesheets <?php foreach($stylesheets as $stylesheet): ?> <link rel="stylesheet" href="css/<?=basename($stylesheet)?>"> <?php endforeach; ?>