После более тщательного поиска я нашел пару статей с решением. Это был первый подход:
import { withPrefix } from "gatsby"
import Helmet from "react-helmet"
const IndexPage = () => (
<div>
<Helmet>
<script src={withPrefix('revolution/js/extensions/revolution.extension.actions.min.js')} type="text/javascript" />
</Helmet>
</div>
)
export default IndexPage
Это второй подход с использованием файла gatsby-ssr.js
:
const React = require("react")
exports.onRenderBody = ({setPostBodyComponents}) => {
setPostBodyComponents([
<script key="1" src={'js/plugins/plugins.js'} type="text/javascript" />,
<script type="text/javascript" src={"js/beauty.custom.js"}/>
]);
};
, таким образом теги сценариев будут добавляться в конце body
вместо head
Я думаю, что второй является лучшим, но нужно учитывать, что каждый раз, когда вы что-то меняете в файле gatsby-ssr.js
, нужно останавливать gatsby develop
и перезапустите это.
В первом случае при использовании react-helmet
произойдет горячая перезагрузка.
ПРИМЕЧАНИЕ : в обоих подходах файлы должны находиться в папке static
Вот ссылки, по которым я нашел этот подход:
Как включить локальный javascript на странице Gatsby?
Как вставить внешний скрипт с помощью gatsby-browser?