构建单页应用程序时,一个常见的挑战是在网站资产更改后刷新它们。幸运的是,Inertia 通过可选地跟踪您网站资产的当前版本,使这变得容易。当资产更改时,Inertia 会在下次请求时自动进行完整页面访问,而不是 XHR 访问。
要启用自动资产刷新,您需要告诉 Inertia 您资产的当前版本。这可以是任何任意字符串(字母、数字或文件哈希),只要它在您的资产更新时更改即可。
通常,您的应用程序的资产版本可以在 Inertia HandleInertiaRequests
中间件的 version
方法中指定。
class HandleInertiaRequests extends Middleware
{
public function version(Request $request)
{
return parent::version($request);
}
}
或者,可以使用 Inertia::version()
方法手动提供资产版本。
use Inertia\Inertia;
Inertia::version($version);
Inertia::version(fn () => $version); // Lazily...
Inertia 中的资产刷新基于以下假设:硬页面访问将触发您的资产重新加载。但是,Inertia 实际上并没有做任何事情来强制执行此操作。通常,这通过某种形式的缓存清除来完成。例如,将版本查询参数附加到您的资产 URL 的末尾。
如果您使用的是 Laravel Mix,则可以通过在您的 webpack.mix.js
文件中启用 版本控制 来自动执行此操作。当使用 Laravel 的 Vite 集成时,资产版本控制会自动完成。