Включить скрипт шлема Гэтсби

Я не могу включить сценарий в шлем Гэтсби. Я хочу включить следующий сценарий:

  <script src = "assets / vendor / jquery / jquery.min.js"> </script>

Я пробовал это сделать, и консоль выдает ошибку:

 import Helmet from "react-helmet";
    import {withPrefix} from "gatsby";
    
    <Helmet>
    <script src = {withPrefix ('masonry.js')} />
    </Helmet>

с этим синтаксисом я тоже пробовал, и это дает мне ошибку:

<Helmet>
  <script src = "http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type = "text / javascript" />
</Helmet>

Как бы это было решено?


person emiliano cheli    schedule 05.12.2020    source источник
comment
В чем ошибка? _ выдает ошибку _ бесполезен.   -  person Zsolt Meszaros    schedule 05.12.2020


Ответы (1)


Вы там много чего смешиваете. Если ваши ресурсы являются внутренними, например, те, которые есть в первом и втором фрагментах, добавьте их в папку /static и импортируйте следующим образом:

import { withPrefix } from "gatsby"
// ...

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

Обратите внимание на пробелы в коде, вы должны следовать за ними.

Если ваши активы являются внешними сторонними активами, вы также можете импортировать их в свой <Helmet>, но без использования внутренней функции withPrefix. Просто:

<Helmet>
  <script src="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type = "text / javascript" />
</Helmet>

Как и любой другой компонент в React, ваш тег <Helmet> должен быть чем-то обернут, чтобы избежать проблем с синтаксическим анализом, используйте его всегда так:

const IndexPage = () => (
  <Layout>
    <Helmet>
      <script src="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" type="text/javascript" />
    </Helmet>
  </Layout>
)
person Ferran Buireu    schedule 05.12.2020