29

我计划在 github 上构建和部署一个静态站点。如果我要这样做,是否仍然可以有联系表?

这似乎是我的特定网站上将存在的唯一一组动态功能。

我是否必须在其他地方创建服务才能创建联系表?

4

7 回答 7

39

是的,您需要使用外部服务。Formspree是一个非常棒的外部服务,无需注册,每月最多可免费提交 1000 次提交。

其他选项:Simple Form(免费)FormKeep(19 美元/月)Wufoo(免费和付费选项)

于 2015-01-02T05:39:31.590 回答
6

简单表单似乎是绕过 Jekyll 静态站点方面的一个有趣的选择。

Wufoo也是一个不错的选择。

于 2014-05-09T14:41:03.147 回答
3

使用 Jekyll 的超级简单快速表单设置是使用外部服务,例如https://formkeep.com

于 2014-10-16T05:57:52.600 回答
3

是的,你需要一些外部的东西来存储你的数据。但好消息是,存在如此多的解决方案,您只需要为您的特定需求挑选“最佳”即可。

只要给我机会将KVStore.io也包括在可能的解决方案中(免责声明:我是作者)。

如果你有足够的时间,我刚刚发布了一篇关于如何存储来自 Jekyll/GitHub Pages 或类似内容的用户生成内容的文章......

但是故事的长篇大论是,通过使用KVStore.io,您仍然可以受益于真正的存储引擎(具有简单而丰富的 RESTful API 集)支持“仅客户端环境”,如“jekyll/github 页面”或其他你喜欢的组合..

我的 2 美分

于 2015-11-20T14:21:40.353 回答
2

恰恰。Jekyll 编译过程的(通常)结果是一个静态站点,因此拥有动态功能的唯一方法是通过外部服务。

例如,您可以尝试zappyforms

于 2013-08-01T13:49:52.743 回答
1

formspree.io就像一个魅力(阅读更多...

于 2016-05-20T20:00:37.220 回答
-3

如果您想创建自己的联系表单,例如 PHP,您可以这样做。只要记住这两件事:

  1. Jekyll 会将前面没有下划线或逐字忽略的所有内容复制到 _site 目录。

  2. 您可以将 HTML 文件包含到 PHP 文件中。

我在我的服务器上使用 PHP 库从 Jekyll 创建的 HTML 联系表单发送邮件。但是,我的问题是缺少服务器端验证或通知用户未/成功交付或哪些字段未验证。我宁愿没有用于响应的自定义 Success.html 和 Fail.html 页面。

这就是我解决它的方法。

我的 Jekyll 结构如下所示:

/..
 _config.yml
 _layouts/
   default.html
   default-php.html
 _includes/
   header.html
   footer.html
   contact-form.html
   nav.html
 ...
 about/
   index.md => index.html
 services/
   index.md => index.html
 contact/
   contact.md => contact.html
   index.php (includes contact.html)

contact-form.html的包含和default-php.html布局都包含用于打印变量的 PHP 代码段。

当有人浏览www.mysite.com/contact它时,它将加载index.php包含我的完整 HTML 页面,其中包含用于打印变量的 PHP 代码片段。

在该 PHP 文件的顶部,您可以处理来自您的联系表单$_POST$_GET从您的邮件传递脚本返回的数据,并将消息打印给发件人,甚至可以向表单字段添加类以指示它们未通过验证。

一个缺点是这不会加载到 Jekyll 的本地服务器(localhost:4000)中。 也许通过一些jiggering你可以得到它。我不知道。我只是设置了一个虚拟主机来指向mysite.local/web/root/myjekyllsite/_sites,它工作正常。

于 2013-09-11T04:15:00.727 回答