columbiaroad / wp-ssr
此包最新版本(v1.1.4)没有提供许可证信息。
WordPress模板中JavaScript应用的服务器端渲染。
v1.1.4
2021-03-31 07:55 UTC
Requires (Dev)
- dev-master
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.0
- 0.1.2
- 0.1.1
- 0.1.0
- dev-dependabot/npm_and_yarn/express-4.17.3
- dev-dependabot/npm_and_yarn/qs-6.5.3
- dev-dependabot/npm_and_yarn/moment-timezone-0.5.37
- dev-dependabot/npm_and_yarn/moment-2.29.4
- dev-dependabot/npm_and_yarn/node-fetch-2.6.7
- dev-dependabot/npm_and_yarn/minimist-1.2.6
- dev-dependabot/npm_and_yarn/path-parse-1.0.7
- dev-dependabot/npm_and_yarn/normalize-url-4.5.1
- dev-dependabot/npm_and_yarn/ws-7.4.6
- dev-develop
- dev-release/1.0.0
This package is auto-updated.
Last update: 2024-09-12 05:48:56 UTC
README
穷人的服务器端渲染
此应用程序旨在解决WordPress模板中JavaScript应用的服务器端渲染问题。它分为两部分运行。首先是WordPress插件,它为渲染创建新的文章类型和REST API端点以获取渲染对象的数组。其次是一个Express服务器,当被访问时,它会获取这些渲染对象并启动puppeteer来渲染页面。当页面渲染并且解析了该页面上所需的应用程序部分后,它将通过REST API将HTML保存回文章。
免责声明
此应用程序不提供实时服务器端渲染,但适合提高您内容SEO的可访问性。puppeteer始终以未认证用户渲染页面,并且需要状态变化反映在URL中。
设置
WordPress
您可以使用composer安装此插件
composer require "columbiaroad/wp-ssr:0.1.2@dev"
首先,您需要转到插件设置并填写所需信息。您需要提供用于通过REST API进行认证的API密钥。然后,您需要给出WordPress的Node应用程序URL,用于ping渲染。最后,您还可以定义渲染过期的时间间隔。
在WordPress模板中,您需要在渲染头部之前请求渲染内容。您可以通过使用WPSSR\Render::render
方法请求应用程序内容,该方法接受三个参数
string $url
您请求渲染的页面URLstring $app_selector
应用程序根元素的查询选择器string $waitfor_selector
puppeteer在渲染页面之前等待的查询选择器
<?php /** * Template Name: React Application * */ $content = WPSSR\Render::render( get_permalink(), '#react-app-root', // App selector '#react-app-inner' // Waitfor selector ); get_header(); ?> <div id="react-app-root"> <?php echo $content; ?> </div> <?php get_footer(); ?>
Node应用程序
要启动Node应用程序,您需要为它准备一些环境变量。
WP_DOMAIN
指向您的WordPress安装的根目录API_KEY
是您在插件设置页面提供的相同API密钥NODE_ENV
用于定义Node环境。此示例用于忽略puppeteer HTTPS错误SCHEDULE
用于定义渲染cron作业的调度
运行应用程序的一种方法是通过提供的Docker镜像
docker run -d \ -e "WP_DOMAIN=https://example.com" \ -e "API_KEY=my-api-key" \ -e "NODE_ENV=production" \ -e "SCHEDULE=*/15 * * * *" \ -p 80:3000 \ --restart=unless-stoppped \ --name=wpssr \ columbiaroadcom/wp-ssr
发布包
当发布GitHub版本时,composer包会自动发布到columbiaroad/wp-ssr
。
要发布到Docker Hub,您需要访问那里的存储库。发布操作如下
docker build . --tag columbiaroadcom/wp-ssr:<tag> docker push columbiaroadcom/wp-ssr:<tag>
待办事项
- 为Node应用程序添加
.env
文件支持 - 优化大量渲染
- 锁定渲染过程以防止多次同时渲染调用