Версия ресурсов в Inertia
Пусть вы уже выложили новый JavaScript, а сотрудник продолжает работать в открытой вкладке со старым кодом. Следующий переход по сайту может пойти через Ajax и не подтянуть обновлённые файлы из кэша. Человек видит ошибки или устаревший интерфейс, хотя на сервере всё уже исправлено.
Inertia может сравнивать версию
ассетов из ответа с той, что
знает клиент. Если строки
не совпали, следующий визит,
который человек инициирует сам,
идёт как полная загрузка страницы,
и браузер забирает свежие файлы.
В Laravel интеграция с Vite
обычно подставляет версию
автоматически; её возвращает
метод version в middleware
HandleInertiaRequests.
Давайте оставим стандартное поведение родительского класса, чтобы версия бралась из сборки:
<?php
namespace App\Http\Middleware;
use Illuminate\Http\Request;
use Inertia\Middleware;
class HandleInertiaRequests extends Middleware
{
public function version(Request $request)
{
return parent::version($request);
}
}
При необходимости ту же строку
можно задать вручную через
метод version фасада
Inertia до ответа страницы.
Главное, чтобы значение менялось
при каждом обновлении фронтенда.
На сайте отдела кадров включите отслеживание версии ассетов через middleware так, чтобы после новой сборки клиент мог узнать о смене версии.