#deployment #path #gatsby #github-pages #gatsby-plugin
#развертывание #путь #gatsby #github-страницы #gatsby-плагин
Вопрос:
Я развернул веб-сайт gatsby со страницами Github, и у меня возникают подобные ошибки: локально все работает отлично, ошибки возникают только на сервере. Похоже, сервер не может правильно разрешить пути. Я добавляю ненужное имя репозитория после домена. Как это удалить? Я попытался изменить некоторые параметры хоста и снова развернуть приложение, и как только оно заработало должным образом, IDK почему, затем я сделал еще одно развертывание, и оно снова рухнуло. Мой gatsby.config:
const path = require("path");
const { title, keywords, description, author, defaultLang, trackingId } = require("./config/site");
module.exports = {
pathPrefix: "/lbearthworks",
siteMetadata: {
title,
keywords,
description,
author,
},
plugins: [
{
resolve: "gatsby-plugin-google-analytics",
options: {
trackingId,
},
},
{
resolve: "gatsby-plugin-manifest",
options: {
name: title,
short_name: "Lb",
start_url: "/",
background_color: "#212121",
theme_color: "#fed136",
display: "minimal-ui",
icon: "content/assets/gatsby-icon.png",
},
},
"gatsby-transformer-remark",
{
resolve: "gatsby-source-filesystem",
options: {
name: "markdown",
path: `${__dirname}/content`,
},
},
{
resolve: "gatsby-source-filesystem",
options: {
name: "images",
path: `${__dirname}/content/assets/images`,
},
},
"gatsby-plugin-eslint",
"gatsby-plugin-react-helmet",
"gatsby-transformer-sharp",
"gatsby-plugin-sharp",
"gatsby-plugin-offline",
{
resolve: "gatsby-plugin-sass",
options: {
data: `@import "core.scss";`,
includePaths: [path.resolve(__dirname, "src/style")],
},
},
...
],
};
Ответ №1:
При работе со страницами GitHub вам необходимо добавить дополнительную конфигурацию в вашу команду сборки, поскольку вы добавляете pathPrefix
переменную, вам нужно разрешить Netlify указывать префикс этих путей. В идеале команда сборки должна выглядеть так:
"deploy": "gatsby build --prefix-paths amp;amp; gh-pages -d public"
В вашем случае, поскольку вы добавляете конфигурацию на основе файлов ( netlify.toml
), ваша команда сборки:
[build]
command = "yarn amp;amp; yarn testbuild"
publish = "public"
Обратите внимание, что testbuild
это yarn test amp;amp; yarn build
зависит от вашего репозитория.
Итак, одним из обходных путей является изменение вашей package.json
команды на:
"testbuild": "yarn test amp;amp; yarn build --prefix-paths amp;amp; gh-pages -d public",
Кроме того, вы должны быть в gh-pages
ветке, поскольку она показывает документацию Gatsby:
При запуске
npm run deploy
все содержимое общедоступной папки будет перемещено вgh-pages
ветку вашего репозитория. Убедитесь, что в настройках вашего репозиторияgh-pages
в качестве источника для развертывания задана ветка.