Если вы случайно развернули плохой код Heroku, вы можете быть знакомы с Страница ошибки приложения Героку Анкет Или, может быть, вам нужно было поместить ваше приложение в режим обслуживания, и вы видели Страница режима обслуживания Хероку Анкет
Обе эти страницы Настраивается через Config VARS Анкет Все, что вам нужно, это общедоступные, статические HTML -страницы, живущие где -то за пределами вашего приложения. Heroku рекомендует размещать их на Amazon S3, но может быть легко загрузить там страницы, забудьте о них и заставить их выпадать из синхронизации с остальной частью вашего приложения.
Один из способов избежать потери отслеживания пользовательских ошибок и страниц технического обслуживания — это постоянно развернуть их из репозитория вашего приложения. Вот один из способов сделать это.
Выберите каталог, чтобы обслуживать страницы с
Это может быть новый каталог в вашем хранилище или тот, который уже существует. Имейте в виду, что для любого каталога, который вы выберете, все его файлы будут общедоступными.
Мое приложение, Понедельник мили , это приложение Rails, что означает, что /public
Справочник уже доступен общедоступным. Подавая зеркало этого не было большого значения в моем случае, поэтому я решил сохранить свои страницы ошибки и технического обслуживания в /public
. Другие варианты включают отдельный /страницы
каталог или, возможно, каталог, названный в честь домена, из которого вы планируете обслуживать эти страницы.
Добавьте свои страницы в каталог
Страницы должны быть статическими HTML -страницами. Несмотря на то, что вы не сможете получить доступ к активам из других мест вашего приложения (например, из конвейера активов для рельсов), вы можете загружать изображения и CSS в тот же каталог и ссылаться на них с относительными путями.
У меня уже был /public/500.html
Страница для понедельника, поэтому я повторно использовал это для своей страницы ошибки. Я настроил копию, чтобы создать мой /public/maintion.html
страница.
Создайте новое приложение NetLify
NetLify это потрясающий сервис для размещения статических сайтов. Он может сделать какую -то причудливую вещь, если вы используете статический генератор сайтов, такой как Jekyll или Middleman, но также отлично подходит для размещения простых старых каталогов статических HTML -файлов. Мое любимое преимущество NetLify по страницам GitHub заключается в том, что он предоставляет бесплатный HTTPS в один щелчок для пользовательских доменов через Elt’s Encrypt.
После того, как вы зарегистрируетесь, нажмите «Новый сайт от git. «Выберите своего провайдера GIT (на момент написания, GitHub, Gitlab и Bitbucket поддерживаются), выберите свой репозиторий и выберите филиал для развертывания (вероятно, Master
). Чтобы убедиться, что вы только разоблачиваете желаемый каталог, вы можете либо ввести этот каталог в поле «Publich Directory», либо добавить супер простое netLify.toml Файл конфигурации в корне вашего репозитория ( Вот шахта для понедельника). Поскольку вы не используете статический генератор сайтов, вам не нужно устанавливать команду сборки. Нажмите «Развернуть сайт» и убедитесь, что ваши страницы живут в домене .netlify.com.
Настройте свой пользовательский домен (необязательно)
Heroku будет обслуживать ваши страницы ошибки и технического обслуживания в IFRAME, поэтому маловероятно, что ваши пользователи заметят, если страницы будут поданы с *.netlify.com. Тем не менее, NetLify позволяет так легко начать работу с пользовательского домена, что, я думаю, стоит пары дополнительных минут.
На странице обзора для вашего нового приложения NetLify нажмите «Настроить пользовательский домен» и следуйте инструкциям, чтобы добавить пользовательский домен (я выбрал public.mondaymiles.com). Если ваш домен живет с провайдером, который предоставляет CDN, такой как CloudFlare, обязательно установите новую запись CNAME только для «DNS», поскольку NetLify имеет свой собственный CDN. Следуйте инструкциям, чтобы предоставить сертификат Let’s Encrypt и включить HTTPS.
Если вам нужны какие-либо запросы на несуществующие файлы в вашем домене NetLify, чтобы перенаправить пользователей в ваше основное приложение, вам нужно добавить _redirects
Файл В ваш NetLify Publish Directory. Вот как выглядит моя Анкет
Настройте Heroku
Установить Error_page_url
и Обслуживание_PAGE_URL
config VAR, чтобы указать на страницы ошибки и обслуживания на NetLify. Вы делаете это через Heroku Cli или через панель панели вашего приложения на странице «Настройки». Не забудьте сделать это для всех ваших приложений, если вы используете Хероку трубопроводы Анкет Следуйте Инструкции Heroku по проверке вашей ошибки и страниц технического обслуживания Анкет
Вот и все! В любое время, когда вы обновляете эти страницы в репозитории вашего приложения, они будут обновлены на NetLify. Вместо того, чтобы увидеть общие страницы режима ошибок и технического обслуживания Heroku, ваши пользователи увидят созданные вами страницы (надеюсь, не слишком часто!).
Оригинал: «https://dev.to/nholden/continuously-deploy-custom-heroku-error-and-maintenance-pages-from-your-apps-repository-13kn»