如何在 Gatsby 页面上包含本地 JavaScript?

2024-05-18

我是一个完全的 React 新手,我想这里有些基本的东西我不太明白。默认的 Gatsby 页面如下所示。有没有办法像这样使用本地 .js 文件?

<script src="../script/script.js"></script>

我想要实现的是让反应忽略script.js但仍然让客户端使用它。默认的 Gatsby 页面看起来像这样,是否可以在那里做类似的事情?

import React from "react"
import { Link } from "gatsby"

import Layout from "../components/layout"
import Image from "../components/image"
import SEO from "../components/seo"

const IndexPage = () => (
  <Layout>
    <SEO title="Home" keywords={[`gatsby`, `application`, `react`]} />
    <h1>Hi people</h1>
    <p>Welcome to your new Gatsby site.</p>
    <p>Now go build something great.</p>
    <div style={{ maxWidth: `300px`, marginBottom: `1.45rem` }}>
      <Image />
    </div>
    <Link to="/page-2/">Go to page 2</Link>
  </Layout>
)

经过几个小时的沮丧之后我终于偶然发现讨论 https://github.com/gatsbyjs/gatsby/issues/11013#issuecomment-453698163在 GitHub 上为我解决了这个问题。盖茨比里有一种东西叫静态文件夹 https://www.gatsbyjs.org/docs/static-folder/,其中一个用例是在捆绑代码之外包含一个小脚本。

遇到同样情况的其他人,请尝试按以下步骤操作:

  1. 创建文件夹static到你的项目的根目录。

  2. 把你的脚本script.js在文件夹中static.

  3. 将脚本包含在你的react dom中带反应头盔.

因此,就我在原始问题中发布的代码而言,例如:

import React from "react"
import Helmet from "react-helmet"
import { withPrefix, Link } from "gatsby"

import Layout from "../components/layout"
import Image from "../components/image"
import SEO from "../components/seo"

const IndexPage = () => (
  <Layout>
    <Helmet>
        <script src={withPrefix('script.js')} type="text/javascript" />
    </Helmet>
    <SEO title="Home" keywords={[`gatsby`, `application`, `react`]} />
    <h1>Hi people</h1>
    <p>Welcome to your new Gatsby site.</p>
    <p>Now go build something great.</p>
    <div style={{ maxWidth: `300px`, marginBottom: `1.45rem` }}>
      <Image />
    </div>
    <Link to="/page-2/">Go to page 2</Link>
  </Layout>
)

注意进口

import Helmet from "react-helmet"
import { withPrefix, Link } from "gatsby"

和脚本元素。

<Helmet>
    <script src={withPrefix('script.js')} type="text/javascript" />
</Helmet>

这会节省我几个小时的时间,希望对其他人也能如此。

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

如何在 Gatsby 页面上包含本地 JavaScript? 的相关文章

随机推荐

  • clang 是否提供类似于 GCC 6.x 的函数多版本控制 (target_clones) 的功能?

    我读了这篇 LWN 文章 https lwn net Articles 691932 饶有兴趣 执行摘要 GCC 6 x 支持所谓的函数多版本控制 它可以构建同一函数的多个版本 并针对不同的指令集进行优化 假设您有一台支持 AVX2 的机器
  • 使用 Denon 时如何避免权限问题

    我正在运行 denon 它就像节点中的 nodemon 但即使我手动指定了相关标志 特别是 allow net flag 如何使用 Denon 运行我的应用程序 这样我就不必不断重新启动 如果不知道确切的错误 很难给你正确的答案 但是den
  • PHP - 扩展 __construct

    我想知道你是否可以帮助我 我有两个类 一个扩展了另一个 B 类将由各种不同的对象扩展 并用于常见的数据库交互 现在我希望 B 类能够处理其连接和断开连接 而无需来自 A 类或任何外部输入的指示 据我了解 问题是扩展类不会自动运行其 cons
  • 找出所有程序 dynpro 屏幕?

    我是ABAP新手 我想制作一个具有多个屏幕和一个初始主屏幕的程序 可以在其中看到所有程序屏幕的列表 我知道我可以对它们进行硬编码 但应该有更好的方法 如果有任何类型的字段 区域 我需要使该列表可点击 以转到屏幕 到目前为止 我已经制作了一个
  • 使用 Azure AD 通过 OAuth2 对 Azure API 管理进行身份验证

    我正在尝试通过 AzureAD 使用 OAuth2 来保护 APIM API 方法是阅读以下文章 通过 Azure AD 使用 OAuth 2 0 授权来保护 Azure API 管理中的 Web API 后端 https learn mi
  • 如何向 CSS 形状添加偏移轮廓?

    我在创建带有斜角边缘的块时遇到了一些问题 此外我需要一个斜角的边框并稍微偏离主块 问题是这个块可以根据屏幕响应 不知道具体的方法 希望大家帮忙 这就是我现在所做的 box display flex padding 20px height 2
  • 我该如何实现这个折叠功能呢?

    给出了两种数据类型 颜色 和 植物 data Color Red Pink White Blue Purple Green Yellow deriving Show Eq data Plant Leaf Blossom Color Stal
  • 为什么我的“While Loop”不打印查找平均“分数”的计算结果?

    我正在编写一个程序来读取用户输入的正整数序列 用户一次只能输入一个整数 然后它将计算这些整数的平均值 当用户输入0时程序结束 0不计入平均值 程序结束后程序将打印出平均值 问题 当我进入 while 循环时 我的代码停止工作 因此它不会计算
  • Package.json 表示 firebase-functions 的版本已过时

    我有云功能项目 并将该项目从旧笔记本电脑移至新笔记本电脑 我已经安装了所有必要的东西 我的问题是当我尝试时firebase deploy它给了我这个错误 函数 package json 表示 firebase functions 的过时版本
  • JSF 命名 Bean,Eager 应用程序范围(又名 @ManagedBean(eager=true) )

    有没有办法初始化带有注释的命名Beanjavax inject Named javax enterprise context ApplicationScoped like ManagedBean eager true from javax
  • 我应该在 Prolog 和一般情况下避免尾递归吗?

    我正在阅读 立即学习 Prolog 在线书籍 以获取乐趣 我正在尝试编写一个谓词 该谓词遍历列表的每个成员并向其添加一个 使用累加器 我已经在没有尾递归的情况下轻松完成了 addone addone X Xs Y Ys Y is X 1 a
  • 使用 LINQ 和 ASP.NET MVC 更新多个表

    只是简单地说一下 我只是想寻求一些澄清 我希望通过一个 创建 操作来更新多个表 在尝试之前 我只是想知道是否可以简单地执行以下操作 db hdCalls InsertOnSubmit a db hdCustomers InsertOnSub
  • 如何将窗口注入到服务中?

    我正在用 TypeScript 编写一个 Angular 2 服务 它将利用localstorage 我想注入对浏览器的引用window对象到我的服务中 因为我不想引用任何全局变量 例如 Angular 1 x window 我怎么做 这目
  • 有队列实现吗?

    任何人都可以建议使用 Go 容器来实现简单快速的 FIF 队列 Go 有 3 种不同的容器 heap list and vector 哪一种更适合实现队列 事实上 如果您想要的是一个基本且易于使用的 fifo 队列 slice 可以满足您所
  • 调用 free() 时损坏的未排序块

    glibc detected a out free corrupted unsorted chunks 0x00000000007646b0 glibc detected a out malloc memory corruption 0x0
  • iOS - 当 UIView 移动时将 UITextField 移动到不同的位置

    我有一个主 UIView 它通过开关向上移动 我有这个工作 那里没有问题 现在 UIView 当向下时 占据屏幕的大约一半 当它向上推时 它会显示底部 40px 在 UIView 中 当它处于向下状态时 它有一个 UITextField 并
  • RegularExpressionAttribute - 如何使其客户端验证不区分大小写?

    我有一个用于客户端验证的字符串 private const String regex b d 5 s s d 5 A Z 2 d 3 s s 1 d 3 s 我在我的中使用这个字符串 RegularExpression regex Erro
  • 二值图像中骨架上两点之间的最短路径

    我有一个二进制图像 其中包含图像的一个像素宽度骨架 您可能基本上知道 在这个二值图像中 我在骨架上有 1 在其他地方有 0 如何找到骨架上两个非零元素之间的最短距离 路径也应该在骨架本身上 我想使用 A star 算法的 C 实现 我找到了
  • Selenium 中的“断言”与“验证”

    Selenium 执行的检查通常有两种形式 assertFoo 和 verifyFoo 据我所知 assertFoo 使整个测试用例失败 而 verifyFoo 只是记录该检查的失败并让测试用例继续进行 因此 使用 verifyFoo 即使
  • 如何在 Gatsby 页面上包含本地 JavaScript?

    我是一个完全的 React 新手 我想这里有些基本的东西我不太明白 默认的 Gatsby 页面如下所示 有没有办法像这样使用本地 js 文件 我想要实现的是让反应忽略script js但仍然让客户端使用它 默认的 Gatsby 页面看起来像