Gatsby не рабочие пути, развернутые на страницах github (добавление имени репозитория в URL)

#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")],
      },
    },
    ...
  ],
};
  

Живая версия

Повторный запуск Github

Ответ №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 в качестве источника для развертывания задана ветка.