Управление версиями активов

Одна из распространенных проблем с одностраничными приложениями - обновление ресурсов сайта, когда они были изменены. Inertia упрощает это, при необходимости отслеживая текущую версию ресурсов Вашего сайта. В случае изменения актива Inertia автоматически выполнит жесткое посещение страницы вместо обычного посещения ajax при следующем запросе.

Настройка

Чтобы включить автоматическое обновление ресурсов, Вам просто нужно сообщить Inertia, какая у Вас текущая версия. Это может быть любая string (буквы, числа или хеш файла), если она изменяется при обновлении Ваших ресурсов.

/*
|----------------------------------------------------------------
| Через мидлвар HandleInertiaRequests (рекомендуется)
|----------------------------------------------------------------
*/

class HandleInertiaRequests extends Middleware
{
    public function version(Request $request)
    {
        return parent::version($request);
    }
}

/*
|----------------------------------------------------------------
| Вручную
|----------------------------------------------------------------
*/

use Inertia\Inertia;

Inertia::version($version);
Inertia::version(fn () => $version); // Отложенно
Посредник HandleInertiaRequests обеспечивает разумное значение по умолчанию для приложений Laravel, которое использует либо хеш значения конфигурации "app.asset_url", либо файл mix-manifest.json.

Очистка кеша

Обновление активов в Inertia работает в предположении, что посещение жесткой страницы приведет к перезагрузке Ваших активов. Однако Inertia на самом деле ничего не делает для этого. Обычно это делается с помощью той или иной формы очистки кеша. Например, добавление параметра запроса версии в конец URL-адресов Ваших ресурсов.

Если Вы используете Laravel Mix, Вы можете сделать это автоматически, включив версионирование в Вашем файле webpack.mix.js.