Laravel кешируемых изображений в браузере - PullRequest
1 голос
/ 17 февраля 2020

Как разработчик, я хочу контролировать кеш браузера. Я не хочу просто отключить это. Мне нравится, как работает 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'?

...