Как разработчик, я хочу контролировать кеш браузера. Я не хочу просто отключить это. Мне нравится, как работает laravel mix()
. Но как я могу использовать его для изображений? Более конкретно, для изображений, которые жестко закодированы в CSS файлах. Как и
background-image: url('/my_image.png');
Я знаю, что это не совсем задача для функции 'mix ()'.
Таким образом, я создал какую-то глобальную переменную (например, счетчик). Если я изменю его (увеличу его один раз), все кэшированные изображения будут обновлены во всех браузерах моих клиентов.
Моя идея состояла в том, чтобы создать такой маршрут
Route::get('cacheable/1/images/{filename?}', [SomeController::class, 'get_image'])
->where('filename', '.*')
->name('cacheable.images');
и тогда я могу назвать это так:
route('cacheable.images', 'smile.png');
Я могу изменить 1
на '2' и быть уверенным, что все запросы клиентов теперь направляются на новый маршрут, и изображения находятся в новый маршрут.
Но теперь мне нужно было жестко закодировать изображения в файлах css. И теперь я должен не только изменить URL в файле маршрута, но и go через все css при поиске изображений. Это нарушает идею единой точки правды. И это разбивает мне сердце.
Любое предложение о том, как мне синхронизировать c функцию mix()
и функцию 'Route :: get'?