搜索
首页web前端css教程使用Redwoodjs,Fauna和Vercel部署无服务的Jamstack网站

使用Redwoodjs,Fauna和Vercel部署无服务的Jamstack网站

该教程通过使用Redwoodjs,Faunadb和Vercel构建Jamstack无服务器应用程序来指导您。我们将利用Fauna的GraphQl API作为Redwoodjs Frontend的后端,并在Vercel的一键式部署中毫不费力地部署。

期望使用此功能强大的技术堆栈深入了解Jamstack和无服务的概念。

构建您的红木应用程序

Redwoodjs是无服务器应用程序的框架,将React(Frontend),GraphQl(数据)和Prisma(数据库查询)组合在一起。尽管存在其他前端框架(例如野牛),但Redwoodjs提供了一个成熟且建立了良好的生态系统。

我们将绕过起动模板并从基本的Redwood项目构建,以检查每个组件。首先,安装纱线并运行以下命令:

纱线创建Redwood-App ./csstricks
CD CSSTRICKS
纱RW开发

您的前端在localhost:8910 ,后端在localhost:8911 (带有GraphIQL游乐场)上运行。红木着陆页应出现在localhost:8910 。 (注意:此示例中使用了Redwoodjs版本0.21.0;请咨询文档以获取最新版本和生产准备。)

项目结构

Redwoodjs优先考虑约定而不是配置,提供了结构化的项目布局:

 <code>├── api │ ├── prisma │ │ ├── schema.prisma │ │ └── seeds.js │ └── src │ ├── functions │ │ └── graphql.js │ ├── graphql │ ├── lib │ │ └── db.js │ └── services └── web ├── public │ ├── favicon.png │ ├── README.md │ └── robots.txt └── src ├── components ├── layouts ├── pages │ ├── FatalErrorPage │ │ └── FatalErrorPage.js │ └── NotFoundPage │ └── NotFoundPage.js ├── index.css ├── index.html ├── index.js └── Routes.js</code>

该项目分为由纱线工作区管理的web (前端)和api (后端)目录。我们将用Faunadb替换Prisma,删除prisma目录和db.js的内容(但保留db.js文件)。

index.html

index.html文件包含root dom节点(<div id="redwood-app"></div> )渲染React应用程序的位置。 Redwoodjs虽然以Jamstack为导向,但目前却没有像Next.js或Gatsby那样执行预读。

index.js

index.js使用ReactDOM.render()将主要应用程序组件呈现到redwood-app元素中。它利用RedwoodProvider进行上下文管理和FatalErrorBoundary进行错误处理。

Routes.js

Routes.js使用Redwood的路由器定义了应用程序的路由。

创建页面

让我们使用Redwood CLI创建页面:

纱线RW G页面家庭 /
纱线RW G页面

这为HomePageAboutPage生成必要的文件。通过删除不必要的导航链接来简化这些页面。

布局

为导航创建可重复使用的布局:

纱线RW G布局博客

修改BlogLayout.js以包括AboutPage HomePage的导航链接,并使用<link>成分。将BlogLayout导入到HomePageAboutPage ,以合并导航。

动物模式定义语言(SDL)

使用以下模式创建sdl.gql

类型post {
  标题:字符串!
  身体:绳子!
}

类型查询{
  帖子:[帖子]
}

将此架构上传到您的Faunadb实例。请注意,Faunadb创建了中介类型;我们将在Redwoodjs模式中解释这一点。

Redwoodjs SDL和服务

创建api/src/graphql/posts.sdl.js镜像动物架模式,包括中介类型的PostPage 。创建api/src/services/posts/posts.js使用graphql-request查询FAUNA GraphQl API。切记在api目录中安装graphql-requestgraphql

动物区系授权

使用环境变量,将api/src/lib/db.js配置为在授权标题中包含您的FaunAdb Secret。

播种Faunadb

使用Fauna Shell将一些示例帖子添加到您的数据库中。

细胞

生成BlogPostsCell来获取和显示帖子:

纱线RW生成细胞博客文章

修改BlogPostsCell.js查询posts并渲染每个帖子的标题和正文。将BlogPostsCell导入到HomePage中。

动词部署

将您的项目连接到Vercel。修改netlify.toml (如果存在)将apiProxyPath设置为“/api”。将您的Faunadb秘密添加到Vercel的环境变量中。 Vercel的Build Command与Redwoodjs无缝地工作。

您的申请已完成!可以使用实时演示和GitHub存储库(链接将在此处插入)。

以上是使用Redwoodjs,Fauna和Vercel部署无服务的Jamstack网站的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
CSS计数器:自动编号的综合指南CSS计数器:自动编号的综合指南May 07, 2025 pm 03:45 PM

CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他们可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑战挑战InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)创造性

使用卷轴驱动动画的现代滚动阴影使用卷轴驱动动画的现代滚动阴影May 07, 2025 am 10:34 AM

使用滚动阴影,尤其是对于移动设备,是克里斯以前涵盖的一个微妙的UX。杰夫(Geoff)涵盖了一种使用动画限制属性的新方法。这是另一种方式。

重新访问图像图重新访问图像图May 07, 2025 am 09:40 AM

让我们快速进修。图像地图一直返回到HTML 3.2,首先是服务器端地图,然后使用映射和区域元素通过图像上的单击区域定义了可单击区域。

DEV状态:每个开发人员的调查DEV状态:每个开发人员的调查May 07, 2025 am 09:30 AM

开发委员会调查现已开始参与,并且与以前的调查不同,它涵盖了除法:职业,工作场所,以及健康,爱好等。 

什么是CSS网格?什么是CSS网格?Apr 30, 2025 pm 03:21 PM

CSS网格是创建复杂,响应式Web布局的强大工具。它简化了设计,提高可访问性并提供了比旧方法更多的控制权。

什么是CSS Flexbox?什么是CSS Flexbox?Apr 30, 2025 pm 03:20 PM

文章讨论了CSS FlexBox,这是一种布局方法,用于有效地对齐和分布响应设计中的空间。它说明了FlexBox用法,将其与CSS网格进行了比较,并详细浏览了浏览器支持。

我们如何使用CSS使网站迅速响应?我们如何使用CSS使网站迅速响应?Apr 30, 2025 pm 03:19 PM

本文讨论了使用CSS创建响应网站的技术,包括视口元标签,灵活的网格,流体媒体,媒体查询和相对单元。它还涵盖了使用CSS网格和Flexbox一起使用,并推荐CSS框架

CSS盒装属性有什么作用?CSS盒装属性有什么作用?Apr 30, 2025 pm 03:18 PM

本文讨论了CSS盒装属性,该属性控制了元素维度的计算方式。它解释了诸如Content-Box,Border-Box和Padding-Box之类的值,以及它们对布局设计和形式对齐的影响。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境