问题标签 [jamstack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
799 浏览

javascript - 是什么让 JAMStack 安全?

JAMstack 的每个描述似乎都提到了“安全性”作为好处,例如:

JAMstack 应用程序的静态特性使扩展变得容易,并且几乎不会导致开发操作开销。JAMstack 方法还可以改善您的应用程序的安全状况,因为静态站点通常具有较小的攻击向量。

https://www.contentful.com/r/knowledgebase/jamstack-cms/

提供更好的性能、更高的安全性、更低的扩展成本和更好的开发人员体验。

https://jamstack.org/

我真的不明白什么是“更安全”的。我所看到的都是这样的引用:

开发人员可以利用第三方服务的专业知识来增强您的网站/应用程序的安全功能

因此,简而言之,这里唯一的“安全性”是来自Auth0,Octa还是其他任何应该擅长安全性的人,因为这是他们的重点?还是我错过了什么?

编辑,又找到了一个引用:

由于您的服务器上没有运行数据库、插件或动态软件,因此代码注入和黑客攻击的可能性大大降低。当您的网站是静态文件的集合时,所有动态功能都由 API 和客户端 JavaScript 处理,无需依赖 CMS 插件。虽然处理持久数据的外部 API 完全有可能暴露漏洞,但消除 CMS 可以消除许多故障点和攻击向量。对于静态博客,可以毫不夸张地说,安全性基本上不再是问题,至少与典型的 WordPress 安装相比是这样。

https://builtvisible.com/go-static-try-jamstack/

那么,似乎大多数“安全性”只是没有 wordpress?

0 投票
1 回答
699 浏览

reactjs - Gatsby + Netlify CMS:有什么方法可以为 src/pages/index.js 中的每个条目启用特色图像?

是否有任何解决方案可以通过模板https://github.com/netlify-templates/gatsby-starter-netlify-cms在 TOP/HOME 页面中启用特色图片?

我的意思是说我希望 TOP/HOME 页面 (src/pages.index.js) 也显示这些图像。

我试图以两种方式做到这一点,但它失败了。

方式一:

从 config.yml 如下所示。

然后创建了一个 src/pages/index.md 降价文件,并将 js 文件 src/pages/index.js 移动到目录 src/template。将该降价文件添加为我的页面集合中的条目。但是我遇到了这样的盖茨比相关错误。

方式二:

在模板中的 src/pages/index.js 中尝试了相同的方法,gatsby-starter-netlify-cms 在 blog-post.js 中使用 Content 组件编写。

但同样,我在下面遇到了这样的错误。

*我已经在 gatsby-starter-netlify-cms 和 Gatsby 的 Spectrum Chat 中询问了 Gitter,但找不到正确的路径。

0 投票
1 回答
1513 浏览

javascript - 保护 JAM 堆栈中的 API 密钥

我是 JAM 堆栈的新手。JAM 堆栈中的 Web 应用程序(我在 Netlify 中托管我的应用程序)将完全依赖 API 来存储信息和身份验证,对吗?

所以我担心我必须在我的 JavaScript 代码中公开我所有的 API 密钥。任何知道如何打开站点源代码的人都可以看到我的 API 机密并且很容易被滥用。

我正在阅读Github 上JAM 堆栈 repo 中的一个未解决问题

如何保护我的 API 密钥免遭窃听和滥用?

在这种情况下,“最佳实践”是什么?

提前致谢

0 投票
1 回答
848 浏览

proxy - 如何在 JAMstack 解决方案中代理 API 请求?

我正在开发一个几乎完全静态的网站。我使用生成器来创建所有 HTML。

但是,我的网站是嵌入在其页面中的商店的前端。我有一个小 node.js 服务器代表浏览器到后端存储的代理请求。它所做的只是提供购物车中的商品数量,这样我就可以在我网站的所有页面上保持更新数量。那是因为浏览器不允许跨域脚本。我的服务器必须充当客户端和商店之间的代理。

(嵌入式商店是从商店的网站加载的,因此它本身不需要代理。)

我希望最终部署到 Netlify 或一些类似的 JAMstack 提供商。但我不知道如何在 Netlify 上进行代理。

这个问题的标准解决方案是什么?还是 JAMstack 解决方案无法使用代理?是否有解决此问题的 JAMstack 提供商?

0 投票
0 回答
58 浏览

node.js - 在 JAM Stacks 中使用短代码

我们正在决定我们应该采用哪种 JAM 堆栈静态站点生成解决方案,主要决定因素之一是使用短代码创建丰富内容的能力。

我们需要能够在转换为特定 HTML 输出的内容中使用自定义和/或预定义的短代码,例如报价、图形、youtube 视频等。

这意味着在编写正文时,我们的内容编辑器可以使用自定义标签,例如将<youtube video-id="379232">其转换为适当的 HTML 输出。

其他静态站点生成器如何处理这方面的问题?从我目前看到的情况来看,Go Hugo 的简码处理得很好,但我很好奇其他解决方案是如何解决这个问题的。

作为参考,这里是 Hugo 简码的链接:

https://gohugo.io/content-management/shortcodes/

0 投票
2 回答
14571 浏览

jquery - 如何在 Gatsby.js 项目中包含 jQuery?

我已经用 gatsby.js 试验了一段时间,除了这个问题外,一切都很顺利,我不能在应用程序中包含 jQuery 脚本,以便在渲染 gatsby 应用程序后加载,我已经包含了脚本标签文件并加载它,html.js但似乎代码是在反应将内容呈现到我尝试使用的屏幕之前执行的,simple-load-script以将其包含componentDidMount在应用程序的方法中html.js。但是没有运气,这是我html.js文件的源代码:

html.js

如您所见,我替换了componentDidMount()写入控制台的方法,并且没有阻止该方法执行的东西。

如果有人有这方面的经验,请分享,谢谢。

0 投票
1 回答
492 浏览

reactjs - 使用 NetlifyCMS 在 localhost 和 Netlify 之间中断的图像

好的,我对 JAMstack、React、GatsbyJS、NetlifyCMS 和 Netlify 还是很陌生,所以如果这很简单,请原谅我。

我有一个使用 React 和 GatsbyJS 运行的站点,并运行 NetlifyCMS 来控制内容。在大多数情况下,该站点运行良好,但是当涉及到不同环境之间的图像时,我一直遇到问题。

当我通过 NetlifyCMS 将图像添加到任何页面的正文部分时,然后我拉出存储库,图像根本不会出现,而是被损坏的图像图标替换。但是,在 Netlify 上似乎运行良好。

偶尔会出现,但在推送或拉取或重新启动 Gatsby 开发服务器后,它又会中断。

它似乎只在通过 NetlifyCMS 将图像添加到正文内容时发生,因此它出现在 markdown 文件的主要内容中;在 frontmatter 中,它似乎工作正常。

我似乎在这上面花了很多时间。我已经安装了全系列的插件,但我似乎找不到其他面临这个问题的人。

所有其他 HTML 似乎都可以正常工作,但这些图像真的不想要。

盖茨比-config.js

Content.js 组件

在页面模板上调用:

<PageContent className="content" content={content} />

我希望将图像添加到 Markdown 的主体中,以便 Gatsby 处理图像并将其输出为处理/模糊加载图像,并使其在所有服务器(localhost 和 Netlify)上一致地工作。

相反,当它最初(有时)输出时,它是一个巨大的图像,从容器中分离出来,然后在服务器重新启动或类似的情况下,图像就会中断。

0 投票
0 回答
141 浏览

python - 使用 Python SimpleHTTPServer 提供没有 .html 的文件

我想在开发时使用 SimpleHTTPServer 为我的本地站点提供服务。我正在使用基本的 javascript、HTML 和 CSS。我有这种项目结构:

  • app(包含 src 文件的文件夹)
  • dist (构建文件夹,其中所有内容都位于主机)
    • 资产(css、js等)
    • 服务(不同服务的 html 文件)
    • name_of_service_1.html
    • name_of_service_2.html
    • 索引.html
    • 服务.html
  • 包.json
  • gulp.js

在导航内部,每个链接都有一个基本结构,如下所示:

除此之外,我正在使用 HTML 预加载,因此如果有人将鼠标悬停在这些链接上,页面加载速度会更快。因此,我不能使用 services.html 等,因为在这种情况下,预加载将不起作用。我正在使用 netlify 来托管这个网站,并且一切正常。

我的问题:如何使用 SimpleHTTPServer 在本地提供服务,但该页面将很好地加载,而链接中没有 .html 扩展名。

0 投票
1 回答
139 浏览

node.js - 从 websub 服务调用 lambda 函数作为回调 url

当用户在他/她的 youtube 频道中上传新视频时,我想收到推送通知。我已经设置了一个 lambda 函数来触发 netlify 传入的 webhook。而且我必须在 websub 中调用 lambda 函数作为回调 url。

现在从 websub 服务调用 netlify 函数的回调 url 是什么?“ https://abc@netlify.com/ ”或类似的东西?

0 投票
0 回答
429 浏览

github - 自托管 Ghost 博客:如何从开发切换到生产?

我已经在本地安装了 Ghost CMS 并写了一些博客文章。我已经为博客做好了充分的准备,并希望将环境从本地更改为生产环境。

我尝试运行此代码以将本地 Ghost 环境从本地推送到生产环境:

错误信息:

发生系统错误。

消息:当前目录不为空,Ghost 无法安装在此处。

调试信息:

我想将 Ghost 环境从开发设置为生产。

另外,我读到很多人在静态站点方面同时使用 Ghost 和 Github。但是如何将 Github 和 Ghost 与 Ghost 生产环境一起使用呢?我想在 Github 上保存我的网站文件并在线使用 Ghost CMS。

希望您能提供帮助。