sandulat / laratron

Laravel-Rendertron SSR 中间件

v0.1 2019-07-08 10:54 UTC

This package is auto-updated.

Last update: 2024-09-08 23:30:18 UTC


README

🖼Laravel SSR 使用 Rendertron 🖼

关于

鉴于并非所有爬虫都可以渲染 JavaScript,我们必须实现 SSR(服务器端渲染)。在 Laravel 中实现 SSR 可能很头疼,而最简单的解决方案可能是 Rendertron

Laratron 是一个用于您的 Laravel 应用的微型中间件,它可以检测访问者是否为爬虫,并将请求传递给 Rendertron。

关于 Rendertron(来自官方 Readme)

Rendertron 被设计用来使您的 Progressive Web App (PWA) 能够向任何无法渲染或执行 JavaScript 的机器人提供正确的内容。Rendertron 作为独立的 HTTP 服务器运行。Rendertron 使用 Headless Chrome 渲染请求的页面,自动检测您的 PWA 是否已完成加载,并将响应序列化回原始请求。要使用 Rendertron,您的应用程序配置中间件以确定是否将请求代理到 Rendertron。Rendertron 与所有客户端技术兼容,包括 Web 组件。

安装

首先我们需要安装 Rendertron。有关更多信息,请参阅 官方文档。要在项目中安装 Laratron,请运行以下命令:

composer require sandulat/laratron

配置

Laratron 仅公开一个简单的选项,即 Rendertron 的 URL,可以在 env 文件中设置。

RENDERTRON_URL=https://:3000

使用方法

安装后,您可以在任何希望进行服务器端渲染的路由上使用 laratron 中间件。

Route::get('/', function () {
    return view('home');
})->middleware('laratron');

或者,您可以在 App\Http\Kernel 中的 web 中间件组上应用它

'web' => [
    // ...
    \Sandulat\Laratron\Http\Middleware\LaratronMiddleware::class,
],

致谢

Stratulat Alexandru 创建。