Gatsby: Недостающие ресурсы для /

Созданный на 3 февр. 2019  ·  112Комментарии  ·  Источник: gatsbyjs/gatsby

Резюме

Периодически на своем производственном сайте я вижу следующую ошибку;

Error: Missing resources for /
  at render(./.cache/ensure-resources.js:133:17)
  at Sg(./node_modules/react-dom/cjs/react-dom.production.min.js:169:129)
  at Hh(./node_modules/react-dom/cjs/react-dom.production.min.js:214:16)
  at Ih(./node_modules/react-dom/cjs/react-dom.production.min.js:215:274)
  at ji(./node_modules/react-dom/cjs/react-dom.production.min.js:230:233)
  at ki(./node_modules/react-dom/cjs/react-dom.production.min.js:229:143)
  at Fh(./node_modules/react-dom/cjs/react-dom.production.min.js:226:196)
  at bg(./node_modules/react-dom/cjs/react-dom.production.min.js:224:28)
  at qi(./node_modules/react-dom/cjs/react-dom.production.min.js:243:14)
  at render(./node_modules/react-dom/cjs/react-dom.production.min.js:251:109)
  at oi(./node_modules/react-dom/cjs/react-dom.production.min.js:254:364)
  at Ai(./node_modules/react-dom/cjs/react-dom.production.min.js:254:350)
  at apply(./.cache/production-app.js:114:7)
  at r(./node_modules/@sentry/browser/dist/index.js:3114:1)

Кажется, что иногда это приводит к тому, что сайт вообще не отображается, а просто показывает пустую страницу.

Релевантная информация

Вы можете увидеть след на Sentry здесь

Окружающая среда (если применимо)

Это среда, на которой построен сайт;

  System:
    OS: macOS High Sierra 10.13.2
    CPU: x64 Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
    Shell: 5.3 - /bin/zsh
  Binaries:
    Node: 8.11.1 - ~/.nvm/versions/node/v8.11.1/bin/node
    Yarn: 1.9.4 - ~/.nvm/versions/node/v8.11.1/bin/yarn
    npm: 6.4.1 - ~/.nvm/versions/node/v8.11.1/bin/npm
  Browsers:
    Chrome: 71.0.3578.98
    Safari: 11.0.2
  npmPackages:
    gatsby: ^2.0.19 => 2.0.72
    gatsby-image: ^2.0.15 => 2.0.20
    gatsby-plugin-create-client-paths: ^2.0.2 => 2.0.2
    gatsby-plugin-google-gtag: ^1.0.8 => 1.0.8
    gatsby-plugin-manifest: ^2.0.5 => 2.0.10
    gatsby-plugin-offline: ^2.0.11 => 2.0.17
    gatsby-plugin-page-transitions: ^1.0.7 => 1.0.7
    gatsby-plugin-react-helmet: ^3.0.0 => 3.0.2
    gatsby-plugin-sharp: ^2.0.18 => 2.0.18
    gatsby-plugin-stripe-elements: ^1.0.9 => 1.0.9
    gatsby-plugin-twitter: ^2.0.8 => 2.0.8
    gatsby-source-filesystem: ^2.0.4 => 2.0.12
    gatsby-transformer-sharp: ^2.1.12 => 2.1.12
  npmGlobalPackages:
    gatsby-cli: 2.0.0-rc.1
    gatsby-plugin-countly: 0.2.0

Не знаю, с чего начать отладку, поэтому приветствуется любая помощь!

needs reproduction question or discussion

Самый полезный комментарий

@wardpeet работает над некоторыми тестами для имитации сетевых проблем, но мы должны выпустить их в ближайшие 24 часа.

Все 112 Комментарий

Может быть связано с https://github.com/gatsbyjs/gatsby/issues/11453

Может быть, хотя здесь нет 404 штуки.

Извините, что вы это видите, @Jivings

Не могли бы вы дать ссылку на минимальную репродукцию, если это возможно?

Мне не удалось воспроизвести на месте 🙁 Могу ли я вам получить дополнительную информацию, или вообще помогает дежурный отчет? При каких обстоятельствах это может произойти, чтобы я смог сузить круг вопросов?

Я тоже это вижу, но только после развертывания я не могу воспроизвести локально.

Uncaught Error: Missing resources for /store/
    at t.n.render (ensure-resources.js:135)
    at Xo (react-dom.production.min.js:156)
    at Qo (react-dom.production.min.js:155)
    at ti (react-dom.production.min.js:162)
    at Oi (react-dom.production.min.js:192)
    at ji (react-dom.production.min.js:193)
    at fa (react-dom.production.min.js:205)
    at sa (react-dom.production.min.js:204)
    at Mi (react-dom.production.min.js:200)
    at ya (react-dom.production.min.js:218)

Я заметил, что я получаю эту ошибку только в ветке, где я пытался удалить ThemeProvider (стилизованные компоненты) из моего кода, и я предполагаю, что где-то что-то испортилось в файловой структуре, поскольку пакеты не были добавлены / обновлены / удалены. Будет обновлено, если я определю причину, но особо нечего делать.

У меня такая же проблема ... во-первых, извините за мой английский, я говорю по-испански ¯_ (ツ) _ / ¯

Error: Missing resources for /...
    at t.n.render (ensure-resources.js:135)
    at Ri (react-dom.production.min.js:169)
    at Ci (react-dom.production.min.js:168)
    at Li (react-dom.production.min.js:176)
    at Ba (react-dom.production.min.js:221)
    at Ha (react-dom.production.min.js:222)
    at Pl (react-dom.production.min.js:238)
    at Tl (react-dom.production.min.js:237)
    at wl (react-dom.production.min.js:234)
    at Qa (react-dom.production.min.js:232)

Прежде всего, немного контекста, у меня была проблема, связанная с пакетом карусели Tiny Slider, который использовал window , поэтому я ищу разные карусели с реализованным SSR, и я нашел реагирующую карусель . Я отлично работаю с тем, что мне нужно, но только в develop .

Указанная ошибка возникает в двух связанных сценариях:

Сценарий 1
Я использую стилизованные компоненты для стилизации своего слайда, но добавление миксинов сломало мои сборки. Я обнаружил, что добавление gatsby-plugin-styled-components решает проблему; и это работает, но ... сценарий 2 случился

Сценарий 2
Теперь моя сборка работает, и я вижу свою страницу со стилями. Но у меня карусель не работает, ничего не делает !!! 😱 ... Стили выглядят великолепно ... 😅
Я просто удаляю gatsby-plugin-styled-components и скрипт снова работает, но не мои стили 🙃

Надеюсь, это даст некоторые подсказки, чтобы найти и решить проблему.

Привет, ребята.

Не уверен, что это помогает, но у меня была аналогичная проблема, оказалось, что мой недостающий ресурс был отсутствующей (производственной) переменной env для firebase. Это, в свою очередь, повлияло на мои изображения - должно быть, это повлияло на этап сборки.

При необходимости может предоставить дополнительную информацию ...

@Jivings, можете ли вы обновить пакет gatsby и gatsby-plugin-offline? это происходит, когда вы делаете новую сборку, но ресурсы из предыдущей больше не доступны (поэтому html, кэшированный автономным плагином, пытается использовать недоступные ресурсы). В более новых версиях пакетов gatsby / offline мы добавили перезагрузку после обновлений сервис-воркеров, чтобы сайт не оставался в непригодном для использования состоянии.

В моем случае я изменил импорт с import { Link } from './' на import { Link } from './Link' (в моем файле /components/footer.js ), и это исправило ошибку «Отсутствуют ресурсы для /». Думаю, это была круговая зависимость. Но я не знаю, исправит ли это твое
Изменить: если ошибка возникает периодически, я думаю, что решение от @pieh выше имеет больше шансов исправить ее.

Я получаю эти ошибки, но только в IE11. Я не уверен, какие именно ресурсы выходят из строя, поскольку, насколько я могу судить, это происходит только в одном браузере, но я вижу некоторые ошибки в response-dom (см. Скриншоты ниже). Я обновил все свои зависимости Gatsby до последних версий и добавил полифилл на случай, если он

Я работаю над своей веткой разработки, развернутой в Netlify, чтобы проверить исправления на различных устройствах.
Вот последняя сборка отладки, если вы хотите ее протестировать: https://5c6ee3b943e6c400080a5a8b--marcysutton.netlify.com/about/
Вот мой действующий сайт, на котором определенно есть все недостатки IE11: https://marcysutton.com
А вот источник моего сайта: https://github.com/marcysutton/gatsby-site

Вот несколько скриншотов с моей ВМ:

stack trace
script errors in console
react-dom looks related

@marcysutton У вас что-то

Еще нет! @sidharthachatterjee или @pieh , достаточно ли этой информации для отладки? На данный момент довольно большая проблема с блокировкой в ​​IE11.

@Undistraction У меня хорошие новости: команда помогла мне отладить эту проблему, и они указали, что IE11 испытывает проблемы с некомпилированными стрелочными функциями в плагине ( gatsby-background-image ). Они обсуждают изменения в ядре Gatsby, чтобы учесть это, но пока вы сможете обойти это, скомпилировав любые плагины, вызывающие проблемы: https://www.gatsbyjs.org/packages/gatsby-plugin- компилировать-es6-пакеты /? = компилировать

Вот где я использовал его на своем сайте: https://github.com/marcysutton/gatsby-site/blob/develop/gatsby-config.js#L107

Сообщите нам, если у вас все еще возникнут проблемы!

Такая же проблема здесь, периодически наблюдая это на веб-сайтах, которые я не посещал несколько дней (также на веб-сайте Gatsby). Не в IE11, а в Chrome. После нескольких секунд пустой страницы происходит обновление, после которого все снова работает.

Версии одного примера:
gatsby : 2.0.118
gatsby-plugin-offline : 2.0.23

Я получаю эту ошибку в IE (пограничный режим).

Он указывает на файл react-dom.production.min.js в строке 1 char 195183.

при нажатии на ошибку в IE он указывает на этот код:

if(pi)throw a=qi,qi=null,pi=!1,a;}

@marcysutton Спасибо за обновление. Я не заметил этой синтаксической ошибки в вашей консоли. Для нас у нас нет никакой ошибки. В IE11 полностью нарушена навигация по страницам, и страница не гидратируется. При обновлении страницы мы действительно получаем ошибку отсутствия ресурсов. Нам пришлось отказаться от поддержки IE11, потому что больше нечего делать. Никаких проблем с любым другим браузером. Я догадываюсь, что это проблема полифила, но ошибка где-то проглатывается, но это всего лишь предположение. Я не понимаю, как гидратация страницы может вылетать без ошибок в консоли.

Я получаю эту ошибку при (1-й) загрузке. Кажется, очищается после перезагрузки. Продакшн / хостинг Firebase.
Error: Missing resources for /

@rkhayat могли бы вы ссылку на URL или еще лучше обеспечить воспроизводство ?

Благодаря!

FWIW Я описал свой опыт решения этой проблемы в https://github.com/gatsbyjs/gatsby/issues/12399. Это может помочь любому, у кого возникла ошибка Missing resources for / .

У меня была похожая проблема: можно было перемещаться по сайту нормально, но на любой странице, если бы они обновились, страница была бы пустой, и я бы увидел Error: Missing resources for /<path> . При жестком обновлении или очистке кеша страница будет перезагружена, но при обычном обновлении снова будет отображаться пустая страница.

Не имея возможности воспроизвести это локально с помощью gatsby server , я подозревал, что это проблема CDN, поэтому я сделал недействительным корневой каталог в моем дистрибутиве CloudFront, который, похоже, решил эту проблему для меня. Я до сих пор не совсем понимаю, что происходит, но подозреваю, что некоторые ссылки устарели. Надеюсь, это поможет кому-то другому.

Привет!

Этот вопрос утих. Жуткая тишина. 👻

У нас много проблем, поэтому в настоящее время мы закрываем их после 30 дней бездействия. Прошло не менее 20 дней с момента последнего обновления здесь.

Если мы пропустили эту проблему или вы хотите оставить ее открытой, ответьте здесь. Вы также можете добавить ярлык «не устаревший», чтобы эта проблема оставалась открытой!

Спасибо, что стали частью сообщества Гэтсби! 💪💜

@ gatsbyjs-read-only-user Не устарел 😬

@Undistraction У меня хорошие новости: команда помогла мне отладить эту проблему, и они указали, что IE11 испытывает проблемы с некомпилированными стрелочными функциями в плагине ( gatsby-background-image ). Они обсуждают изменения в ядре Gatsby, чтобы учесть это, но пока вы сможете обойти это, скомпилировав любые плагины, вызывающие проблемы: https://www.gatsbyjs.org/packages/gatsby-plugin- компилировать-es6-пакеты /? = компилировать

Вот где я использовал его на своем сайте: https://github.com/marcysutton/gatsby-site/blob/develop/gatsby-config.js#L107

Сообщите нам, если у вас все еще возникнут проблемы!

@marcysutton Как вы определили плагины / модули, которые содержат некомпилированные стрелочные функции?

@onetwothreebutter откройте скомпилированный файл (ы) JavaScript в браузере и найдите => . В IE было нелегко определить, откуда они пришли, поэтому я просто искал вручную с помощью "Ctrl + F".

Со временем это должно улучшиться в ядре, но пока вы можете проверить это!

Хотел бы добавить, что эта проблема сохраняется для нас во всех браузерах и версиях, это не только в IE, и, похоже, запускается с помощью Service Worker в Gatsby. Связанный: # 12399

Я тоже столкнулся с той же проблемой.

  • Если сервис-воркер включен, обновление страниц вызывает вышеупомянутые ошибки. Эта проблема в основном возникала в Chrome. Браузер Edge вроде работает нормально (вероятно, потому, что сервис-воркер там не играет)
  • При удалении сервис-воркера и использовании плагина gatsby-plugin-remove-serviceworker эта проблема исчезает
    Используемое разрешение:
  • Однако, учитывая важность того, чтобы работники сервера опробовали плагин gatsby-plugin-remove-trailing-slashes в сочетании с плагином PWA gatsby-plugin-offline это, похоже, решило проблему для меня.

У меня такая ошибка, и я не использую сервис-воркер.
Я подумал, что, может быть, это произойдет, если страница загружается с определенной версией сайта, а затем выполняется развертывание и имена активов меняются, поэтому их не может найти открытая версия?
Кроме того, версия, вызывающая ошибку в Sentry, не является той версией, которая действовала на момент ошибки.

@antoinerousseau Да, после нескольких попыток исправить это мы все еще получаем его даже без ПО. Мы обновили несколько плагинов Gatsby до последних версий, и это уменьшило количество ошибок, но не до 0. (Хотя вполне может быть совпадением)

@KyleAMathews Вы это видели или у вас есть информация?

@jackhair , без репродукции сложно сказать, что происходит. http://gatsby.dev/reproduction

Обходной путь: https://github.com/gatsbyjs/gatsby/issues/13410#issuecomment -486306784

@smakosh Я не пользуюсь сервис-

Плагин офлайн использует его

Хорошо, но я имею в виду, что ошибка возникает даже без этого плагина.

Можете ли вы проверить, что вы успешно отменили регистрацию ПО, поскольку, возможно, вы уже использовали его раньше, попробуйте также очистить кеш Gatsby, удалив папки public и .cache

Никогда не использовал ПО в этом проекте. (и просто проверил на всякий случай)
public и .cache всегда воссоздаются Netlify.
Sentry сообщает об ошибках в производстве.
https://sentry.io/share/issue/738b234836814442b7702866c6814fdf/

Ваш проект с открытым исходным кодом? Если да, можете ли вы дать ссылку ниже, я бы хотел проверить это и посмотреть, как я могу это исправить

Извините, это не так, но в основном это сайт Гэтсби, обслуживаемый Netlify ...

  "dependencies": {
    "@sentry/browser": "^5.1.1",
    "@types/algoliasearch": "^3.30.8",
    "@types/dotenv": "^6.1.0",
    "@types/he": "^1.1.0",
    "@types/jump.js": "^1.0.2",
    "@types/node": "^11.13.7",
    "@types/node-fetch": "^2.3.3",
    "@types/react": "^16.8.14",
    "@types/react-dom": "^16.8.4",
    "@types/source-map-support": "^0.5.0",
    "@types/standard-http-error": "^2.0.0",
    "@types/styled-components": "^4.1.14",
    "algoliasearch": "^3.32.0",
    "aws-sdk": "^2.443.0",
    "babel-plugin-styled-components": "^1.10.0",
    "date-fns": "^2.0.0-alpha.27",
    "gatsby": "^2.3.31",
    "gatsby-image": "^2.0.40",
    "gatsby-plugin-google-analytics": "^2.0.18",
    "gatsby-plugin-manifest": "^2.0.29",
    "gatsby-plugin-netlify": "^2.0.15",
    "gatsby-plugin-offline": "^2.0.24",
    "gatsby-plugin-react-helmet": "^3.0.12",
    "gatsby-plugin-sharp": "^2.0.35",
    "gatsby-plugin-styled-components": "^3.0.6",
    "gatsby-plugin-typescript": "^2.0.13",
    "gatsby-source-filesystem": "^2.0.32",
    "gatsby-transformer-sharp": "^2.1.18",
    "he": "^1.2.0",
    "hyphenslug": "^1.0.0",
    "intersection-observer": "^0.6.0",
    "jump.js": "^1.0.2",
    "mkdirp2": "^1.0.4",
    "mustache": "^3.0.1",
    "node-fetch": "^2.3.0",
    "nodemailer": "^6.1.1",
    "prop-types": "^15.7.2",
    "react": "^16.8.3",
    "react-dom": "^16.8.3",
    "react-helmet": "^5.2.0",
    "sitemap": "^2.1.0",
    "source-map-support": "^0.5.12",
    "standard-http-error": "^2.0.1",
    "strip": "^3.0.0",
    "styled-components": "^4.1.3",
    "ts-node": "^8.1.0",
    "typescript": "^3.4.5",
    "whatwg-fetch": "^3.0.0"
  },

Я вижу установленный автономный плагин. Можете ли вы подтвердить, что он не включен в ваш файл gatsby-config?

Да, извините, но не используется, вот моя конфигурация Gatsby:

module.exports = {
  siteMetadata: {/*...*/},
  plugins: [
    `gatsby-plugin-typescript`,
    `gatsby-plugin-styled-components`,
    `gatsby-plugin-react-helmet`,
    {
      resolve: `gatsby-source-filesystem`,
      options: {
        name: `images`,
        path: `${__dirname}/src/images`,
      },
    },
    {
      resolve: `gatsby-plugin-sharp`,
      options: {
        defaultQuality: 80,
      },
    },
    `gatsby-transformer-sharp`,
    {
      resolve: `gatsby-plugin-manifest`,
      options: {
        name: `Le Bikini`,
        short_name: `Le Bikini`,
        start_url: `/`,
        background_color: `#000000`,
        theme_color: `#000000`,
        display: `minimal-ui`,
        icon: `src/images/favicon.png`,
      },
    },
    `gatsby-plugin-netlify`,
    {
      resolve: `gatsby-plugin-google-analytics`,
      options: {
        trackingId: process.env.GOOGLE_ANALYTICS,
        head: false,
        anonymize: true,
        respectDNT: true,
      },
    },

    // this (optional) plugin enables Progressive Web App + Offline functionality
    // 'gatsby-plugin-offline',
    // To learn more, visit: https://gatsby.app/offline
  ],
}

И вы можете увидеть это вживую на https://lebikini.netlify.com.

Я не могу помочь без репозитория воспроизведения, так как мне нужно проверить больше материалов для отладки

будь осторожен @antoinerousseau
gatsby-plugin-netlify plugin должен быть последним в массиве плагинов согласно документации плагина
https://www.npmjs.com/package/gatsby-plugin-netlify

@abumalick @antoinerousseau Мы перемещаем gatsby-plugin-netlify в конец нашего массива плагинов, и это ничего не меняет.

Возможно, это как-то связано с этим? https://github.com/gatsbyjs/gatsby/issues/11982

Когда я когда-либо сталкивался с проблемой (чистая случайность), всегда возникала какая-то ошибка, связанная с отсутствием манифеста страниц.

Я описал единственное исправление, которое работает во всех случаях в связанной проблеме здесь: https://github.com/gatsbyjs/gatsby/issues/12399#issuecomment -488247566

Я была такая же проблема. Мой случай был таким же, как и @ efd1 - импорт в форме import { Module } from "." нарушал мою производственную сборку (разработка работала без проблем). К сожалению, отладить и найти было непросто.

image

Приведенные выше предложения не работают для меня. Я вижу это только для пользователей iOS и только изредка. Я не могу воспроизвести это, и поэтому трудно понять, что может быть не так. Какие-нибудь советы о том, как понять, в чем может быть основная проблема?

Чтобы повторить заявление Кайла выше, нам нужны воспроизводимые демонстрационные сайты, которые могли бы помочь. http://gatsby.dev/reproduction

без репродукции сложно сказать, что происходит. http://gatsby.dev/reproduction

@KyleAMathews Честно говоря, я думаю, что это происходит на каждом сайте Gatsby, развернутом в Netlify, который состоит из нескольких страниц. Бросьте Sentry на одного и убедитесь сами.

Я бы сказал, что это утверждение немного преждевременно, поскольку, например, все мои проекты Gatsby развернуты на Netlify, и я никогда не видел ошибки (за последние пару месяцев). Воспроизведение было бы действительно полезно.

@LekoArts @marcysutton Трассировка Sentry по-прежнему общедоступна здесь .

Это вообще помогает?

Ошибка возникает на моем производственном сайте примерно раз в день.

Я бы сказал, что это утверждение немного преждевременно, поскольку, например, все мои проекты Gatsby развернуты на Netlify, и я никогда не видел ошибки (за последние пару месяцев). Воспроизведение было бы действительно полезно.

@lekoarts У вас есть настройка Sentry? Сколько трафика?

Ошибка возникает на моем производственном сайте примерно раз в день.

@Jivings Сколько трафика? Я пытаюсь понять частоту.

Насколько я могу судить, с 1 марта я обнаружил 541 случай этой ошибки при 160 000 просмотров страниц (47 000 сеансов) на одном поддерживаемом мной веб-сайте. Вероятность того, что такое поведение будет вызвано просмотром страницы, составляет 0,3%, а вероятность его возникновения - 1,2%. Не самое лучшее в том, что касается репродукций; нам, вероятно, понадобятся устаревшие трассировки, расследование и прочая отладка, чтобы выяснить это.

Это чаще встречается на мобильных устройствах, но чаще всего они заходят с мобильных устройств, и это происходит и на компьютерах. Марка / модель / браузер не имеет значения. Как бы то ни было, это платформа для потокового аудио, поэтому мы, как правило, наблюдаем гораздо более длительные сеансы, чем веб-сайты, ориентированные на маркетинг или имеющие большой входящий и исходящий трафик.

Кто-нибудь видит эту ошибку в производстве _без_ использования Sentry? Кто-нибудь использует Honeybadger, Raygun, Rollbar, Airbrake или что-то подобное?

@coreyward Также периодически видел это с Raygun. Это только на одной конкретной странице и влияет только на Mobile Safari и Chrome.

@coreyward Мы используем Bugsnag и видели его около 4,8 тысяч раз за последний месяц.

@coreyward Может быть, это полезно:

(с https://github.com/gatsbyjs/gatsby/issues/12399#issuecomment-480082161)

Мы используем Bugsnag и видим, что это проявляется примерно в 1% трафика. Браузеры, похоже, примерно соответствуют нашему общему распределению трафика - не видя никаких четких закономерностей.

@coreyward Похоже, это повлияет на нас примерно на 1% трафика.

@KyleAMathews Привет, я только что столкнулся с этой ошибкой на рабочем сайте GatsbyJS. После обновления пару раз проблема исчезла.

Screen Shot 2019-05-24 at 6 02 32 PM

Мы столкнулись с этой проблемой при использовании автономного подключаемого модуля и развертывания в хранилище BLOB-объектов Azure плюс CDN. Я читал, что js-исполнитель службы не должен обслуживаться из CDN и должен поступать непосредственно из домена сервера. Может быть, это основная причина.

У нас есть ers-hcl.github.io, который развернут с автономным плагином и сервисным работником, включенным на ghpages. Никогда не сталкивался с этой проблемой, что, вероятно, указывает на мой предыдущий комментарий с точки зрения проблемы, связанной с обработкой CDN автономного плагина

эта проблема не имеет ничего общего с автономным плагином. И если вы используете автономный плагин, обязательно перезагрузите или покажите пользователям push-уведомление о том, что для обновления ПО доступен новый контент.

@smakosh всякий раз, когда мы отключаем автономный плагин, эта проблема исчезает для нас.

Мы это видим и не используем офлайн-плагин.

  • Я могу ошибаться - одно наблюдение в файле ensure-resources.js , который является компонентом, который вызывает эту ошибку, но подумал об упоминании на всякий случай.
  • Глядя на код для ensure-resources.js , кажется, что он использует window.location в строке № 81, где есть свойство location которое используется в этом компоненте во всех другие места.

image

Я сомневаюсь, что наша конкретная ситуация будет полезна для многих других, но я хотел бы поделиться ею здесь на всякий случай.

Это повлияло на DataCamp.com из-за проблемы с CORS. Мы используем префикс активов и размещаем активы на S3, обслуживаемых через Cloudfront. Во время нашего первого развертывания с префиксом активов мы забыли установить заголовки CORS в S3, чтобы разрешить доступ к активам из нашего домена (упс). Мы обновили заголовки CORS через минуту или две, но все граничные узлы, на которых уже были вызваны ресурсы, по-видимому, кэшировали не только содержимое ресурсов, но и заголовки CORS! Это создавало иллюзию, что какая-то странная ошибка затрагивала лишь небольшой процент пользователей, тогда как на самом деле проблема заключалась в том, что у небольшого процента граничных узлов были кэшированные старые заголовки. Мы решили эту проблему, создав в Cloudfront аннулирование всех ресурсов.

В более общем плане: если у кого-то из ваших пользователей есть блокировщик рекламы, который выбирает конкретное имя актива как потенциально имеющее отношение к рекламе или отслеживанию, если в какой-либо момент между вашим сервером активов и конечным пользователем есть посредник, который может изменять заголовки для небольшого процент ваших пользователей (например, корпоративная сеть, которая фильтрует контент), или, если может произойти какая-либо другая странная сетевая вещь, похоже, что все это может способствовать этой ошибке.

У нас была такая же проблема, и оказалось, что основной причиной этого были круговые зависимости.

@bigfanjs не могли бы вы подробнее рассказать об этом?

@DSchau Ну, недавно товарищ по команде добавил функцию, и мы развернули, браузер начинает жаловаться на аналогичную проблему, у нас не было идеи, мой товарищ по команде создал страницу и большой общий компонент многократного использования. Таким образом, мы прокомментировали код как на странице, так и в компоненте, и скорее визуализировали тег <div /> . И запустил gatsby build а затем gatsby serve для локальной сборки сервера. и мы начали сужаться, комментируя некоторый код и каждый раз выполняя приведенные выше рекомендации. нравиться:

import {Button} from "components/kit"

// comment the rest to see if `Button` is causing the issue
// import {Box} from "components/kit"
// import {Form} from "components/kit" 

в следующий раз мы прокомментируем Box и так далее ...

Итак, наконец, оказывается, что ошибка проста.

У нас есть общий компонент под названием kit который импортирует пару компонентов:

компоненты / комплект

| --- Box.js
| --- Button.js
| --- Form.js
| --- index.js

index.js

export { default as Box } from "./Box"
export { default as Button } from "./Button"
export { default as Form } from "./Form"

например, внутри Form мы пытались импортировать Box следующим образом:
import {Box} from "components/kit"

Но это вызывает проблему, мы изменили ее примерно так:
import {Box} from "./Box"

и это сработало.

надеюсь, это поможет.

Такая же проблема здесь, периодически наблюдая это на веб-сайтах, которые я не посещал несколько дней (также на веб-сайте Gatsby). Не в IE11, а в Chrome. После нескольких секунд пустой страницы происходит обновление, после которого все снова работает.

Версии одного примера:
gatsby : 2.0.118
gatsby-plugin-offline : 2.0.23

У меня была аналогичная ошибка с этой. И я не мог получить доступ к странице администратора netlify cms в производственной сборке.
И я обнаружил, что это из-за несоответствия версий gatsby и gatbsy-plugin-offline.
недурно!!!

Для людей, которые время от времени видят эту ошибку - на самом деле этого и следовало ожидать - всякий раз, когда вы развертываете новую версию своего сайта, большинство хостов удаляют старые версии сайта, что означает, что любой, кто уже находится на сайте, пытается перейти на страницу сможет найти ресурсы для этой страницы, поэтому выдаст эту ошибку, а затем запустит полное обновление, заново взяв HTML-код для страницы.

Вы можете увидеть тесты для этого здесь: https://github.com/gatsbyjs/gatsby/blob/cbbed1dde8a4fd25080e9ab65d7661dfa8fbf327/e2e-tests/production-runtime/cypress/integration/resource-loading-resilience.js#

@KyleAMathews Похоже, обновление не запускается этой ошибкой отсутствия ресурсов, поэтому пользователь застревает на сломанной или просто белой странице. Нужен ли нам автономный плагин для обеспечения обновления?

Нет ... если это происходит, значит, это ошибка Гэтсби. Есть ли у нас репродукция сценария, который вы описываете?

-
Кайл Мэтьюз

Блог: http://bricolage.io
Twitter: http://twitter.com/kylemathews

Во вторник, 4 июня 2019 г., в 15:05 Джек <[email protected]> написал:

@ KyleAMathews (https://github.com/KyleAMathews) Похоже, обновление
не запускается этой ошибкой отсутствия ресурсов, поэтому пользователь застрял
на битой или просто белой странице. Нужен ли автономный плагин для
убедиться, что обновление происходит?

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub (
https://github.com/gatsbyjs/gatsby/issues/11524?email_source=notifications&email_token=AAARLB6OVB47GMB5K2242M3PY3RLFA5CNFSM4GUAYCZKYY3PNVWWK3TUL52HS4DNMVREXGOD6WWWK3TUL52HS4DNMVREXGODW08HW04DFVR08C08C0C08
) или отключить поток (
https://github.com/notifications/unsubscribe-auth/AAARLB7QKXUL3AZF4MXCO33PY3RLFANCNFSM4GUAYCZA
).

@KyleAMathews Кроме того, что я

Похоже, что @coreyward поймал его на сайте Гэтсби в комментариях.

Также к этому обсуждению относится то, что @Moocar работает над большим рефакторингом того, как мы загружаем данные во время выполнения https://github.com/gatsbyjs/gatsby/pull/13004

На данный момент у меня нет репродукции, но я могу подтвердить, что видел это как минимум полдюжины раз, когда оно не обновлялось само по себе.

@KyleAMathews: мы видим, что это происходит с 1% запросов во всех браузерах, совершенно независимо от того, когда мы выполняем развертывание - мы увидим, что это происходит по воскресеньям с той же скоростью, даже когда последнее развертывание было в пятницу. Вот снимок экрана с ошибками, чтобы проиллюстрировать относительную согласованность во времени (конечно, все еще есть небольшая часть кусков от нормального изменения трафика):

image

@gwlortscher очень интересно - так что, похоже, это не связано с развертыванием. Похоже, что эта диаграмма показывает количество ошибок. Не могли бы вы поделиться диаграммой% запросов? Я предполагаю, что это не зависит от трафика?

Просто добавьте возможную причину:
В моем случае это был new Buffer(val, 'base64').toString(); в качестве замены atob в SSR.
(Обычно, если atob недоступен, используйте версию node-js.)
Работал в разработке, компилировался корректно, вылетал при запуске прод-страницы. Кроме того, включения было достаточно, код никогда не выполнялся, он просто присутствовал в блоке, который будет загружен при запуске.

@KyleAMathews Bugsnag, похоже, не имеет диаграммы% запросов, но ее достаточно легко вычислить из аналитики. Вот последние 8 дней (процент ошибок в запросах):

6/1 2,4%
6/2 2,3%
6/3 2,2%
6/4 2,4%
6/5 2,4%
6/6 2,1%
6/7 2,4%
6/8 2,4%

Впервые мы увидели это при обновлении до Gatsby v2.9.4. Возврат к 2.8.5 решил проблему. Все еще пытаюсь проанализировать причину.

У нас была такая же проблема, и мы увидели, что она исправлена ​​путем перехода на версию 2.8.5. До этого мы постоянно получали сообщения об отсутствии ресурсов для "/"

@bmatzner @wilcoxmd Мы используем 2.8.x какое-то время, и с тех пор, как мы впервые перешли с v1 на v2, были отсутствующие ресурсы в каждом обновлении Gatsby. Таким образом, при обновлении с v2.

Мы определенно давно наблюдали за выпуском 2.8.5. Я думаю, что у этой проблемы множество причин. v2.94, кажется, представила еще одну.

@bmatzner @wilcoxmd Мы используем 2.8.x какое-то время, и с тех пор, как мы впервые перешли с v1 на v2, были отсутствующие ресурсы в каждом обновлении Gatsby. Таким образом, при обновлении с v2.

Одна и та же

@jackhair Понятно . Мы еще не запустили наш сайт Gatsby, поэтому я не знаю, увидим ли мы, что какой-то процент трафика по-прежнему сталкивается с этой проблемой. Мы столкнулись с этим при развертывании промежуточной версии. У нас была версия 2.9.2, и с обслуживанием сборки локально все было хорошо, но как только мы ее развернули, в любом браузере постоянно возникала ошибка отсутствия ресурсов. Переход на версию 2.8.5 позволил мне развернуться и сайт заработал.

@jackhair Понятно . Мы еще не запустили наш сайт Gatsby, поэтому я не знаю, увидим ли мы, что какой-то процент трафика по-прежнему сталкивается с этой проблемой. Мы столкнулись с этим при развертывании промежуточной версии. У нас была версия 2.9.2, и с обслуживанием сборки локально все было хорошо, но как только мы ее развернули, в любом браузере постоянно возникала ошибка отсутствия ресурсов. Переход на версию 2.8.5 позволил мне развернуться и сайт заработал.

Интересно. Как бы то ни было, нам никогда не удавалось воспроизвести проблему локально (gatsby develop), только когда она построена в производственной среде, мы видим проблему.

У нас есть ветка prod на 2.9.2, которая выглядит многообещающей, пока нет проблем, но трафик к ней ничтожен по сравнению с основной производственной. Я опубликую результаты, как только мы развернем, надеюсь, что обновление манифеста страницы для Гэтсби на прошлой неделе очень поможет.

У нас работает версия 2.9.0, и, к сожалению, проблема все еще наблюдается с той же скоростью, что и раньше - 1-2% трафика во всех браузерах.

Откат версии до 2.8.5 с 2.9.4 похоже, устранил проблему.
В нашем случае это, похоже, связано с некоторыми отсутствующими файлами pages-manifest-{hash}.js[.map] .
Версии 2.9.3 и 2.9.4 имеют некоторые потенциально критические изменения: см. Https://github.com/gatsbyjs/gatsby/pull/14732 (из журналов изменений пакета Gatsby: https://github.com /gatsbyjs/gatsby/blob/master/packages/gatsby/CHANGELOG.md).
Для подтверждения этого последним тестом для нас должно быть обновление Gatsby до 2.9.2 .

FYI @moocar имеет PR, чтобы сделать загрузку ресурсов более надежной, например, неудачная https://github.com/gatsbyjs/gatsby/pull/14889

Если у кого-то из вас будет время просмотреть / попробовать это, мы будем очень признательны. Я прошу прощения за то, что не заметил этого раньше - не было ясно, насколько это было широко распространено или в чем причина, прежде чем копаться недавно с @Moocar

Не знаю, поможет ли это больше, но несколько минут назад у меня он был на https://gatsbyjs.org/contributing :

Screenshot 2019-06-19 at 17 04 17

Исправлено после перезагрузки, но вроде стоит сюда поставить @KyleAMathews

Я считаю, что это может быть проблема с конфигурацией автономного плагина, поскольку он может неправильно проверять изменения в файлах манифеста страницы и, следовательно, сохранять старые.

Собираюсь попробовать и посмотреть на эту на следующей неделе с @wardpeet, так как я написал много автономных плагинов - к сожалению, в последнее время я был очень занят экзаменами и планировал переехать, поэтому не смог проверить все это меняется правильно 😞

@ davidbailey00 Прежде чем вы испытаем это с автономным плагином или без него.

@ davidbailey00 у нас также была проблема без автономного плагина. Он находится в моих модулях узлов, но все еще закомментирован в моем файле конфигурации.

Мы также наблюдаем это без установленного автономного плагина.

@ davidbailey00 да, мы думаем, что основное исправление - это правильная обработка некоторых необычных случаев ошибок для запросов ajax и добавление логики повтора https://github.com/gatsbyjs/gatsby/pull/14889

Мы развернули PR на gatsbyjs.org в течение последних ~ 4-5 дней, и все выглядит действительно хорошо! С момента развертывания не было новых событий «недостающие ресурсы».

https://github.com/gatsbyjs/gatsby/pull/14889#issuecomment -505872897

@wardpeet работает над некоторыми тестами для имитации сетевых проблем, но мы должны выпустить их в ближайшие 24 часа.

Спасибо, @KyleAMathews, не могу дождаться, чтобы это

@KyleAMathews благодарит вас и вашу команду за это обновление!

@KyleAMathews Эта проблема все еще возникает на моем сайте. локально работает нормально, а в проде - нет. Кроме того, я вижу это 100% времени, а не спорадически, как некоторые из комментариев выше. Тем не менее, я просмотрел большинство решений, и их использование не привело к исправлению. У вас есть конкретная версия Gatsby, в которой есть исправление, чтобы я мог убедиться, что я нажимаю что-то другое?

Я готов поделиться URL-адресом в частном порядке, а также добавить доступ к частному репо, если кто-то из команды gatsby захочет взглянуть (напишите мне в твиттере ). Спасибо за любые советы / предложения - чтобы прояснить, что я тестировал:

  • Добавление перезагрузки сервис-воркера в gatsby-browser.js
  • Удаление автономного плагина
  • Обновление всех узловых модулей
  • Обеспечение отсутствия ссылок на импорт с помощью .

Мы должны исправить это в последнем выпуске Гэтсби [email protected] . Мы запустили его на gatsbyjs.org, и ошибки исчезли.

Пожалуйста, обновите и сообщите нам, если возникнут другие проблемы! На данный момент закрываю это.

@KyleAMathews Спасибо - я сделал, к сожалению, это не

@KyleAMathews Спасибо - я сделал, к сожалению, это не

Мы не получим отсутствующие ресурсы, потому что они были удалены и заменены другой ошибкой: https://github.com/gatsbyjs/gatsby/pull/14889/files#diff -3182dbe2979ea0744c50242668edc572L173

Мы недавно развернули это исправление и собираемся проверить журналы ошибок на предмет новых / различных ошибок.

РЕДАКТИРОВАТЬ: да, похоже, this.loadPageDataJson(...).then(...).finally is not a function - это новый missing resources

@jackhair в каком браузере вы тестируете? Я почти уверен, что мы наконец добавили полифилл. Хотя может ошибаться.

не возражаете поделиться своим репо? или маленькая репродукция?

@jackhair в каком браузере вы тестируете? Я почти уверен, что мы наконец добавили полифилл. Хотя может ошибаться.

не возражаете поделиться своим репо? или маленькая репродукция?

Мы наблюдаем это в нескольких действующих браузерах:

Screen Shot 2019-07-02 at 13 29 03

Не могли бы вы поделиться URL-адресом вашего веб-сайта, чтобы я мог посмотреть и, возможно, немного отладить его?

Не могли бы вы поделиться URL-адресом вашего веб-сайта, чтобы я мог посмотреть и, возможно, немного отладить его?

Конечно! https://ritual.com

@jackhair Я могу подтвердить ошибку. Не могли бы вы создать новую проблему, используя информацию, указанную выше?

@wardpeet @jackhair мы также получаем эту проблему finally polyfill, добавлена ​​ли новая проблема? он может ссылаться на это, пожалуйста?

@eknowles @wardpeet К сожалению, у меня еще не было времени написать сообщение об ошибке. Если у вас есть свободное время, и вы хотите создать его, я тоже могу сделать резервную копию своими данными.

@wardpeet @jackhair Мне удалось отследить нашу проблему с помощью finally polyfill.

Мы обнаружили, что одной из наших зависимостей было включение babel-polyfill с useBuiltins: usage вместо entry.

В любом случае нам пришлось понизить версию redux-api-middleware (не связанного с gatbsy).
https://github.com/agraboso/redux-api-middleware/compare/v2.3.0...v3.0.0

это решило нашу ошибку finally . Я бы порекомендовал проследить трассировку стека по цепочке и посмотреть, какая библиотека является виноватой, поскольку полифил Promise может быть переопределен, но неприятный lib.

Спасибо, мы уже видели это раньше с node_modules и babel-runtime. Мне придется переосмыслить, как мы можем исправить это в будущем или, по крайней мере, выдать правильное сообщение об ошибке.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги