sandulat / laratron
Laravel-Rendertron SSR 中间件
Requires
- php: ^7.1
- guzzlehttp/guzzle: ~6.0
- illuminate/support: 5.8.*
- jaybizzle/crawler-detect: 1.*
- laravel/framework: ~5.8.0|~5.9.0
Requires (Dev)
- orchestra/testbench: 3.8.*
- phpunit/phpunit: ^7.0
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 创建。