当前位置: 首页 > 面试题库 >

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

凌志学
2023-03-14
问题内容

我是React的新手,我猜这里有些基本的东西我不太了解。默认的盖茨比页面如下所示。有没有办法使用本地.js文件呢?

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

我想实现的是让反应忽略,script.js但仍然让客户端使用它。默认的盖茨比页面如下所示,是否可以在该页面上做类似的事情?

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>
)

问题答案:

经过数小时的挫折,我终于偶然发现了在GitHub上为我解决的讨论。在Gatsby中,有一个叫做“
静态文件夹”的东西,一个用例是在捆绑的代码之外包括一个小的脚本。

在相同情况下的其他任何人,请尝试如下进行操作:

  1. 创建一个文件夹static到您的项目的根目录。

  2. 将您的脚本script.js放在文件夹中static

  3. 使用react-helmet 将脚本包含在您的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>

这样可以节省我的时间,希望可以为其他人节省时间。



 类似资料:
  • 我正在通过编程Clojure书学习Clojure,但很早就想从书中找到一个例子。 我从书中下载了代码示例;目录结构为 其中有一堆.clj文件,包括一个名为induction.clj的文件。 我试图运行的代码以 ...但我不能让它发挥作用。 我试着添加一个checkouts目录,并将其中的examples目录符号化。我试过用manifest.txt创建一个.jar文件,给出了1.0.0版本....

  • 我对ASP.NET很陌生,我正试图创建一个学习网站。我在用PHP开发网站,在这里我使用< code >在主页面中包含了另一个PHP文件 我在某个地方看到了这个代码,但它不起作用。

  • 问题内容: 我是node.js和javascript的初学者。 我想在HTML代码中包含外部javascript文件。这是html代码“ index.html”: 并且,这是JavaScript代码“ simple.js”: 当我直接在网络浏览器(例如Google Chrome)上打开“ index.html”时,它可以工作。(“ Hello”消息应显示在屏幕上。) 但是,当我尝试通过node.j

  • 我想将一个外部字体添加到我的git页面,我的目录中有这个字体,但不能让它在https://github.com/aadesh9985/aadesh9958.github.io页面上工作 我的页面https://aadesh9985.github.io/aadesh9958.github.io/我尝试过不同的方法,但没有任何帮助... 此外,我还看到了可以向GitHub页面添加自定义字体

  • 我试图对现有的python模块进行更改,然后在本地测试它。最好的方法是什么? 我克隆了github模块并做了修改,但是我不确定如何导入本地包而不是已经安装的包。

  • 有一个页面带有一些HTML: 并且我想通过文本查找元素到LI中。如果我试图用XPath找到它: null [contains(text(),'text1\r\ntext2')]/accentor::li“ 没有建立任何元素。我尝试在xpath前面使用@,如:“@[contains(text(),'text1\r\ntext2')]/accentor::li” 但也没有结果。我应该找到整个文本的元素