如何在 Nuxt 中设置 netlify 表单

2024-05-12

当我通过添加带有 a 的链接来使用 vue-router 导航到表单时<router-link>元素,表单不起作用。当我点击提交时,我收到了 404 响应。

但是,如果我使用<a>标签(触发页面重新加载)然后它就可以完美工作。

我怀疑这与作为 SPA 的页面呈现有关,并且出于某种原因,除非重新加载表单页面,否则不会加载 Netlify 表单的重要部分?为什么会发生这种情况?是否有一个优雅的解决方案来解决这个问题?我可以用标签替换所有表单链接,但我确信有更好的解决方案,我只是不太了解问题,无法找到它。

对于上下文,我使用 Nuxt。这些表单在后端被 Netlify 识别,并且可以接受带有标签链接的提交,因此这不是问题。


由于您使用的是 Nuxt,因此您可能应该使用 SSG/完全静态target: 'static'(可托管在类似 Netlify 的平台上)或target: 'server'(可托管在类似 Heroku 的平台上)但在任何时候,您都应该拥有ssr: true(默认值)。当你做到了这一点时,最重要的部分就完成了。

在 Nuxt 中,你应该使用<nuxt-link>而不是<router-link>,它的工作原理完全相同(采用相同的参数等),但它更特定于 Nuxt 和 SSR/SSG 兼容,而<router-link>不是。更多详细信息请参见此处:https://nuxtjs.org/docs/2.x/features/nuxt-components#the-nuxtlink-component https://nuxtjs.org/docs/2.x/features/nuxt-components#the-nuxtlink-component

所以,有了这一切,它应该已经很好用了。如果不是,如果您有 github 存储库,我很乐意帮助您发现问题。


另一种解决方案是使用某种没有任何 SSR 依赖性的表单,例如 Formspree:https://formspree.io/ https://formspree.io/(适用于任何 SPA)

它效果很好,非常简单。但我宁愿邀请您制作适当的 SSR 表单,因为您正在使用 Nuxt。


PS: use <a>仅用于外部链接的标签,即那些不以您的域名开头的标签,仅此而已。关注这种链接就像硬刷新一样,应该不惜一切代价避免。


编辑:如何通过清理缓存来部署。


编辑如何实现工作形式:

<template>
  <div>
    <form
      netlify
      action="/"
      method="POST"
      name="Contact"
    >
      <input type="hidden" name="form-name" value="Contact" />
      <!-- ... -->
    </form>
  </div>
</template>

As told 在文档中 https://docs.netlify.com/forms/setup/#html-forms:

[...] 注入一个名为 form-name 的隐藏输入 [...] 并且隐藏的 form-name 输入的值与表单的 name 属性相匹配

工作正常。可以添加一个蜜罐以使其更加安全!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Nuxt 中设置 netlify 表单 的相关文章

随机推荐

  • Kafka Streams 如何处理包含不完整数据的分区?

    Kafka Streams 引擎将一个分区映射到一个工作线程 即 Java 应用程序 以便该分区中的所有消息都由该工作线程处理 我有以下场景 并试图了解它是否仍然可行 我有一个主题 A 有 3 个分区 发送给它的消息由 Kafka 随机分区
  • “grep -q”的意义是什么

    我正在阅读 grep 手册页 并遇到了 q 选项 它告诉 grep 不向标准输出写入任何内容 如果发现任何匹配 即使检测到错误 也立即以零状态退出 我不明白为什么这可能是理想或有用的行为 在一个程序中 其原因似乎是从标准输入读取 处理 写入
  • Django ValueError:缺少静态文件清单条目,但清单似乎显示该条目

    在部署到 Heroku 的 Django 1 11 应用程序上 加载根 URL 时 我猜当 Django 到达时 static angular angular min js in the homepage html模板 我收到以下错误 Va
  • mat-table 中每行的 formGroup 数组

    我有一个 formGroup 数组 其中每个元素代表一个表单 接下来我有一个 mat 表 我想要做的是将每个 tr 即每一行 生成为不同的表单 以便表的第 i 行链接到第 i 个 formGroup 因此 在第 i 行内 每个 td 元素都
  • 更改 gnuplot 中 tics 之间的实际空间

    x 轴示例 Before 10 20 30 40 After 10 20 30 40 我已经搜索了一段时间 只找到了如何尽可能简单地缩放除抽动之间的大小之外的其他所有内容 我不想改变画布大小 终端大小 抽动大小 抽动数量等 我想拉伸 x 轴
  • Android 6 getAccountName() 缺少 android.permission.GET_ACCOUNTS

    在 Android 6 设备上运行时出现以下异常 java lang SecurityException Missing android permission GET ACCOUNTS 这看起来像是一个相当简单的例外 但对我来说并非如此 我
  • .NET Core Web API 密钥

    我正在开发一个应用程序 用户可以通过用户名和密码进行身份验证 我们提供一个 JWT 令牌 然后在服务器上进行验证 我想补充的一件事是能够拥有一个特殊的 API 密钥 guid 用户在与此应用程序集成时可以使用该密钥 而不是使用用户名和密码
  • 当绑定值为 null 时出现 WPF 日期选择器验证错误

    我有一个 WPF 应用程序 其中使用绑定到实体框架 带有 SQL Server 实体的日期字段的日期选择器 我将其绑定如下
  • 如何在 C# 中将 cookie 过期设置为“会话”?

    不言自明 在 PHP 中 解决方案是将 cookie 过期设置为 0 我不确定 C 因为它需要 DateTime 值 的文档Cookie 过期 http msdn microsoft com en us library system net
  • 在一条语句中对多个变量进行相同的赋值

    有没有一种方法可以为不同的变量分配相同的值 而无需在单个语句中构造数组 例如 如果我有变量a b c d and e 我可以分配类似的东西吗 a b c d e 10 0 我知道我可以用一行来做 a 10 0 b 10 0 c 10 0 d
  • 可以禁用“应用程序错误”对话框吗?

    我使用 Hudson 作为持续集成服务器来测试 C C 代码 不幸的是 我在某个地方有一个错误导致内存损坏 因此在某些 Windows 计算机上我有时会收到一个 应用程序错误 对话框 解释一条指令引用了无法读取的内存 弹出此对话框并基本上挂
  • Java switch 语句:需要常量表达式,但它是常量

    因此 我正在研究这个具有一些静态常量的类 public abstract class Foo public static final int BAR public static final int BAZ public static fin
  • 在 Swift async/await 中,我可以使用 Lock 还是 Semaphore

    这不是问题 这是一个想寻求帮助以及专业指导的问题 根据文档 Sendable 类型可以在 Swift Concurrency 中安全地传递 在旧项目中并非所有类型都是可发送的 并且可能使用Cocoa类型 但它们是线程安全的 例如 class
  • Yocto“无法运行 qemu:无法初始化 SDL(x11 不 > 可用)”

    所以我在本地构建服务器上安装了 Yocto 因为谁希望大规模构建占用他们的工作区 amirite 主机和服务器是Arch Linux 4 19 44 1 lts 无论如何 我只是从找到的快速构建页面运行示例here https www yo
  • 我们可以在没有 hibernate 的情况下使用 jpa 吗

    我是 JPA 的新手 根据我的理解 JPA 是规范 Hibernate 实现 JPA 并提供附加功能以及 JPA 方法 但我正在浏览 JPA 教程 其中使用EntityManager对象我们可以对数据执行 CRUD 而无需使用 Hibern
  • Drupal Views 如何过滤与日期范围重叠的项目

    在 Drupal 中 我使用 CCK 将日期时间字段添加到我的自定义数据类型中 它插入开始日期和结束日期字段 这就是我想要的 现在 我希望视图过滤并仅显示日期范围 开始日期和结束日期 与今天日期重叠的项目 关于如何在视图上设置它有什么想法吗
  • 我如何知道我的 iOS 应用程序的蜂窝网络访问是否被禁用?

    我有一个 iOS 应用程序 它在应用程序启动时发出一些小型网络请求 资源更新等 如果用户在 iOS 设置中关闭应用程序的蜂窝网络访问 他们每次启动时都会收到 iOS 的有关网络使用情况的提示 有没有办法以编程方式知道此应用程序的蜂窝数据已被
  • TypeScript:实现具有调用签名和索引签名的接口

    我想创建一个满足此类型的对象 interface I string x string number 并通过 TypeScript 类型检查 理想情况下 我希望不需要诉诸技巧 例如使用any作为中间步骤 我知道可以将其他字段添加到具有调用签名
  • 如何在MySQL选择查询中编写正则表达式?

    我尝试过这个表达 b word w b i比较一个word对照其他单词列表来查找重复项 我用了preg math all 效果很好 我想做同样的事情 但这次检查从 mysql 数据库检索到的单词 这是我写的 SELECT FROM tabl
  • 如何在 Nuxt 中设置 netlify 表单

    当我通过添加带有 a 的链接来使用 vue router 导航到表单时