目录
构建您的红木应用程序
项目结构
创建页面
布局
动物模式定义语言(SDL)
Redwoodjs SDL和服务
动物区系授权
播种Faunadb
细胞
动词部署
首页 web前端 css教程 使用Redwoodjs,Fauna和Vercel部署无服务的Jamstack网站

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

Mar 31, 2025 am 09:33 AM

使用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

热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

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

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1662
14
CakePHP 教程
1419
52
Laravel 教程
1313
25
PHP教程
1262
29
C# 教程
1235
24
Google字体可变字体 Google字体可变字体 Apr 09, 2025 am 10:42 AM

我看到Google字体推出了新设计(Tweet)。与上一次大型重新设计相比,这感觉更加迭代。我几乎无法分辨出区别

如何使用HTML,CSS和JavaScript创建动画倒计时计时器 如何使用HTML,CSS和JavaScript创建动画倒计时计时器 Apr 11, 2025 am 11:29 AM

您是否曾经在项目上需要一个倒计时计时器?对于这样的东西,可以自然访问插件,但实际上更多

HTML数据属性指南 HTML数据属性指南 Apr 11, 2025 am 11:50 AM

您想了解的有关HTML,CSS和JavaScript中数据属性的所有信息。

我们如何创建一个在SVG中生成格子呢模式的静态站点 我们如何创建一个在SVG中生成格子呢模式的静态站点 Apr 09, 2025 am 11:29 AM

格子呢是一块图案布,通常与苏格兰有关,尤其是他们时尚的苏格兰语。在Tar​​tanify.com上,我们收集了5,000多个格子呢

使Sass更快的概念证明 使Sass更快的概念证明 Apr 16, 2025 am 10:38 AM

在一个新项目开始时,Sass汇编发生在眼睛的眨眼中。感觉很棒,尤其是当它与browsersync配对时,它重新加载

如何在WordPress主题中构建VUE组件 如何在WordPress主题中构建VUE组件 Apr 11, 2025 am 11:03 AM

内联式模板指令使我们能够将丰富的VUE组件构建为对现有WordPress标记的逐步增强。

php是A-OK用于模板 php是A-OK用于模板 Apr 11, 2025 am 11:04 AM

PHP模板通常会因促进Subpar代码而变得不良说唱,但这并不是这样的情况。让我们看一下PHP项目如何执行基本的

当您看上去时,CSS梯度变得更好 当您看上去时,CSS梯度变得更好 Apr 11, 2025 am 09:16 AM

我关注的一件事是Lea Verou&#039; s conic-Gradient()Polyfill的功能列表是最后一项:

See all articles