Недавно я обновил свой Discourse, в частности с версии 3.3.0beta1+645 до 3.3.0beta1+699 (в панели администратора Discourse отображается как 3.3.0beta2-dev).
Однако после обновления我发现, что iOS Safari больше не может успешно открывать форум Discourse. В частности, он застревает на странице с пятью мигающими кружками с надписью «загрузка…» и не может войти на сайт.
Я уверен, что это не проблема сети с моей стороны, так как Windows Chrome в той же локальной сети загружает сайт нормально.
Также я уверен, что проблема не в самом сайте Discourse, поскольку мой iPhone также не может получить доступ к этому сайту (meta.discourse.org), аналогично застревая на этой странице загрузки.
Я попробовал переключить почти все настройки в разделе Настройки iOS → Safari → Дополнительно → Экспериментальные функции (кроме «Экспериментальный загрузчик сети», так как он полностью препятствует открытию Discourse. Некоторые переключатели с названиями, содержащими «disabled» или «block», также не были изменены), но сайт по-прежнему не открывается корректно.
Я подозреваю, что некоторые функции, добавленные между версиями +645 и +699, не поддерживаются Safari на iOS 15.8.
User-agent для iPhone выглядит следующим образом:
Mozilla/5.0 (iPhone; CPU iPhone OS 15_8 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/124.0.6367.111 Mobile/15E148 Safari/604.1
Я помню, что на странице совместимости Discourse упоминалось, что Discourse будет совместим с Safari на iOS 15.7. Планирует ли Discourse по-прежнему соблюдать это соглашение? Или поддержка iOS 15 больше не будет осуществляться?
Мы столкнулись с такой же ситуацией только что в Chrome версии 124.0.6367.119 на macOS Sonoma 14.4.
В консоли я вижу следующие ошибки. Возможно, проблема в том, как JS пытается работать. Дайте знать, если понадобится дополнительная информация.
Uncaught ReferenceError: dt7948 is not defined
at 74476 (load-more.js:7:38)
at __webpack_require__ (bootstrap:19:1)
at 30920 (topic-list-item.js:389:3)
at __webpack_require__ (bootstrap:19:1)
at s.callback (discourse.js:976:50)
at s.exports (loader.js:106:1)
at requireModule (loader.js:27:1)
at header_1.js:2:28
Uncaught (in promise) ReferenceError: Cannot access 'components_topic_list' before initialization
at Module.default (topic-list-item.js:389:3)
at Resolver._extractDefaultExport (index.js:541:25)
at Resolver.resolveOther (index.js:163:32)
at Resolver.resolve (index.js:199:23)
at index.js:742:1
at f.resolve (index.js:523:1)
at f.resolve (index.js:525:1)
at o (index.js:237:1)
at i.factoryFor (index.js:184:1)
at PluginApi._resolveClass (plugin-api.js:162:39)
at PluginApi.modifyClass (plugin-api.js:189:29)
at disable-sort.js:12:1
at withPluginApi (plugin-api.js:2612:16)
at Object.initialize (disable-sort.js:11:1)
at initializer.initialize (app.js:209:28)
at index.js:145:1
at e.each (dag-map.js:191:1)
at e.walk (dag-map.js:120:1)
at e.each (dag-map.js:66:1)
at e.topsort (dag-map.js:72:1)
at e._runInitializer (index.js:158:1)
at e.runInstanceInitializers (index.js:143:1)
at u._bootSync (instance.js:86:1)
at e.didBecomeReady (index.js:602:1)
at invoke (backburner.js.js:280:1)
at h.flush (backburner.js.js:197:1)
at p.flush (backburner.js.js:358:1)
at B._end (backburner.js.js:798:1)
at B._boundAutorunEnd (backburner.js.js:523:1)
@tumbleweed спасибо за отчет. Странно, но кажется, что всё начинает работать сразу после открытия инструментов разработчика в браузере. Мы не планировали отказываться от поддержки iOS 15, поэтому исправим это как можно скорее