Я только что снова включил эти строки и пересобрал контейнер. Теперь сайт снова показывает пустую страницу!
На скриншоте ниже показано, где я разместил код в файле app.yml. Как вы видите, я разместил код конфигурации S3 ниже строки DISCOURSE_NOTIFICATION_EMAIL
Я этого не делал. Но я занимался устранением неполадок и уверен, что неправильно настроил CDN S3. Я использую StackPath и не знаю, что указать в поле «Адрес источника» и в заголовке «Host».
Ещё один момент, в котором я не уверен, — это настройка функции отображения списка файлов в бакете DigitalOcean Space. Сейчас я использую опцию «Restrict Listing» (Ограничить список). Влияет ли это на что-либо?
Я закомментировал DISCOURSE_S3_CDN_URL, и сайт загрузился. Это подтверждает, что проблема в моей настройке S3 CDN, но я всё ещё не знаю, как настроить её правильно.
Я не очень хорошо разбираюсь в том, как работает Discourse. Я просто ещё один вебмастер из мира PHP, привыкший копировать и вставлять код, но меня всё же удивляет, зачем нужно указывать один и тот же CDN дважды.
Я не использую переменную DISCOURSE_CDN_URL, так как у меня установлена DISCOURSE_S3_CDN_URL (и, вероятно, ни одна из прочитанных мной инструкций не рекомендовала использовать её). Поэтому я попробовал.
Я добавил DISCOURSE_CDN_URL: <cdn-url>. Пересборка прошла без ошибок, но я получил ошибку 502. Когда я убрал эту настройку, мой форум снова заработал.
Конечно, ваши проблемы могут быть вызваны какой-то другой ошибкой конфигурации. Но я предпочитаю простые решения, даже если ошибаюсь, и в данном случае я виню ситуацию, когда CDN указывается дважды для разных целей. Или что-то в этом роде.
DISCOURSE_CDN_URL и DISCOURSE_S3_CDN_URL различаются. В то время как DISCOURSE_CDN_URL указывает на ваш форум, DISCOURSE_S3_CDN_URL указывает на URL-адрес вашего хранилища S3.
Идея заключается в том, чтобы DISCOURSE_CDN_URL обслуживал извлекаемые активы, такие как CSS, а DISCOURSE_S3_CDN_URL — загружаемые активы, такие как JS, изображения и загрузки пользователей.
Мне удалось настроить всё, кроме CDN хранилища S3. Каждый раз, когда я включаю этот параметр в файле app.yml, мой форум отображается пустым.
При проверке элементов сети в браузере видно, что активы, доставляемые через DISCOURSE_S3_CDN_URL, возвращают ошибку 404.
Это для меня довольно… незнакомо. Но, как я уже сказал, у меня очень мало опыта. Я использую AWS как CDN через S3/CloudFlare в WordPress, но только для статических файлов — для скриптов потребуется другая настройка. Думаю, нет смысла сравнивать WP и Discourse, так как это принципиально разные платформы. Но я пытаюсь понять принципы этой концепции.
Что ж, теперь я знаю гораздо больше, чем вы
РЕДАКТИРОВАНИЕ: Ааа, и я тоже был полностью неправ в своей настройке Весь JS, изображения и т. д. раздают через CDN. Но я не мог найти там CSS.
Привет @Jagster, я буду очень признателен за вашу помощь.
Проблема, с которой я столкнулся сейчас, заключается в том, что мой сайт пытается загрузить файлы .gz.js из CDN объектного хранилища, но этих файлов там нет. Как заставить Discourse загрузить эти файлы .gz.js в объектное хранилище?
Благодаря вашим рекомендациям (@Falco и @pfaffman) я только что успешно завершил эту настройку.
Для других участников сообщества, желающих увидеть мои конфигурации, вот скриншоты. Также я составил подробное руководство в процессе настройки всего этого.
Я использовал StackPath и DigitalOcean Spaces. В моём руководстве содержится пошаговая инструкция по всей конфигурации. Если кому-то нужно это руководство, я с радостью опубликую ссылку по запросу.
@Falco и @pfaffman, огромное спасибо вам обоим за помощь. Это мой первый опыт настройки Discourse, но я только что завершил самые сложные части (надеюсь!). Я очень благодарен!