資源版本控制

在建構單頁應用程式時,一個常見的挑戰是當網站資源被更改時要如何刷新。幸運的是,Inertia 可以選擇追蹤您網站資源的目前版本,讓這件事變得很容易。當資源變更時,Inertia 會在下一次請求時自動進行完整頁面訪問,而不是 XHR 訪問。

設定

若要啟用自動資源刷新,您需要告訴 Inertia 您資源的目前版本。這可以是任何任意的字串(字母、數字或檔案雜湊值),只要它在您的資源更新時會變更即可。

通常,您應用程式的資源版本可以在 Inertia HandleInertiaRequests 中介軟體的 version 方法中指定。

class HandleInertiaRequests extends Middleware
{
    public function version(Request $request)
    {
        return parent::version($request);
    }
}
HandleInertiaRequests 中介軟體為 Laravel 應用程式提供了一個合理的預設值,它會使用「app.asset_url」組態值的雜湊值,或使用「mix-manifest.json」檔案。當使用 Vite 時,Inertia 將會使用「build/manifest.json」檔案的雜湊值。

或者,可以使用 Inertia::version() 方法手動提供資源版本。

use Inertia\Inertia;

Inertia::version($version);
Inertia::version(fn () => $version); // Lazily...

快取清除

Inertia 中的資源刷新是假設硬頁面訪問會觸發您的資源重新載入。但是,Inertia 實際上並沒有強制執行任何操作。通常這是透過某種形式的快取清除來完成的。例如,將版本查詢參數附加到您的資源 URL 的末尾。

如果您使用 Laravel Mix,您可以透過啟用來自動執行此操作 版本控制 在您的 webpack.mix.js 檔案中。當使用 Laravel 的 Vite 整合時,資源版本控制會自動完成。