部署时缺少 Netlify 蜜罐属性

Netlify honeypot attribute missing on deployment

我有一个 Django 网站,我正在使用 django_distill 应用程序生成一个静态网站,我正在将其部署到 netlify。我决定在表单中添加一个机器人保护字段 (https://docs.netlify.com/forms/spam-filters/#honeypot-field )。当我 运行 本地站点时,我看到

<form data-netlify="true" name="consultdocs" netlify-honeypot="BOTFIELD" action="/contact/" id="form" method="post" novalidate="novalidate"> <input type="hidden" name="csrfmiddlewaretoken" value="rdKh4K2zu9T96aEUO9exSv3QCAm5w"> 
 <input id="id_BOTFIELD" name="BOTFIELD" type="hidden"> 
 ....

当我部署到 netlify 时:

<form name="consultdocs" action="/contact/" id="form" method="post" novalidate="novalidate"><input type="hidden" name="form-name" value="consultdocs"> <input type="hidden" name="csrfmiddlewaretoken" value="GNnbYgQu6vLduSpWEswAVXfEx"> 

<input id="id_BOTFIELD" name="BOTFIELD" type="hidden"> 
.... 

我不再看到 :

netlify-honeypot="BOTFIELD"

属性。 netlify 会删除这个吗?

简而言之:是的,netlify 删除了这个字段。

我最初认为这是因为缺少 data 前缀,但如果它与 data-netlify="true" data-netlify-honeypot="BOTFIELD 一起使用或仅与 netlify="true" netlify-honeypot="BOTFIELD.

一起使用,netflify 会独立删除它

我做了一个快速隔离测试以确保 django 没有施展魔法。所以我简单地使用了两个静态 html 文件并将它们推送到 netlify:

在这两种情况下它都消失了。您可以在此处查看这两个文件各自的源代码:

https://github.com/christoph-kluge/netlify-example

我假设 netlify 在部署期间正在解析您的 HTML 代码并正在对其进行调整。此外,netflify 已经检查特定 post 是否是潜在的机器人并为您删除这些请求。所以他们需要对这些字段做些什么。

希望这能回答您的问题。