В настоящее время, когда вы настраиваете гостевой портал и загружаете фоновое изображение, отображается именно тот размер, который вы загрузили, независимо от размера экрана. То есть, если вы загрузите изображение размером 600x400, а смотрите на мониторе 1920x1080, у вас отобразится именно 600x400 и будет по центру экрана (если не выбрана опция плитки). Я внес несколько изменений в HTML/CSS, чтобы независимо от размера загруженного изображения оно занимало весь экран и автоматически масштабировалось под размер экрана. Это удобно, например, если загрузить качественную картинку 1920x1080 и смотреть на мобильном устройстве — она сжимается по высоте, и видно больше фона, при этом сохраняется пропорциональность.
Это довольно простое исправление, возможно, в следующий раз оно появится в портале из коробки, и не придется править шаблоны вручную.
Переходим к инструкциям!
Несколько замечаний и предположений:
- Пишу это, работая на контроллере версии 5.3.2
- Контроллер установлен на Ubuntu сервере, а не на рабочем столе, так что гостевой портал работает круглосуточно
- Всё делаю на «default» сайте, если вы настраиваете отдельный сайт — нужно будет подправить некоторые URL, добавив вашу siteID
- Использую актуальную версию Google Chrome, но должно работать во всех современных браузерах
- Похоже, есть ограничение на размер загружаемого фонового файла — у меня проблемы возникают с файлами больше 1 МБ, так что лучше держать размер меньше этого для стабильной работы
Заходим в контроллер и выбираем пункт «Guest Control». Разумеется, гостевой портал должен быть включен.
Выбираем следующие опции:
Template Engine: AngularJS
Override Default Templates: ставим галочку
Title: вводим любое название
Portal Customization: выбираем и загружаем фоновое изображение. Не ставьте галочку «Tile Background Image».
Добавьте любые другие настройки на ваше усмотрение — цвета, условия использования, приветственный текст.
Увидите предпросмотр вашего портала. Когда закончите, нажмите «Apply Changes».
Переходим по URL вашего портала. У меня это https://<ipaddress-of-controller>:8443/guest/s/default/#/
(Здесь как раз видно, что изображение не масштабируется — измените размер окна браузера, и фон будет просто обрезаться, а не подстраиваться под окно.)
В Chrome нажмите правой кнопкой по изображению и выберите «Inspect» («Просмотреть»). Откроется панель с HTML кодом — она может появиться либо снизу, либо справа, в зависимости от настроек.
В исходном коде найдите тег <body> и кликните по нему. Справа появятся CSS-свойства тега. Нас интересует свойство background-image — именно там задано фоновое изображение. Скопируйте это значение и сохраните в текстовый файл.
Теперь нужно зайти на сам контроллер и отредактировать несколько файлов. Для моего контроллера файлы находятся здесь:
/usr/lib/unifi/data/sites/default/app-unifi-hotspot-portal
Замените строку:
<link href="css/app.css?v=1.0.2" rel="stylesheet">
на
<link href="css/app.css?v=1.0.2" rel="stylesheet"> <link href="css/background.css" rel="stylesheet">
Зайдите в папку css и создайте новый файл background.css, в который добавьте следующий код:
html {
background: url(/guest/s/default/portalfile/57e17c510cf2e0ad3cbc8fde?portalfile=true) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
Обратите внимание, что URL — это то, что мы скопировали на шестом шаге.
Теперь вернитесь на страницу портала и обновите её. Вы увидите, что внешний вид не изменился, но теперь при изменении размера окна фоновое изображение подстраивается под размер экрана.

Это довольно простое исправление, возможно, в следующий раз оно появится в портале из коробки, и не придется править шаблоны вручную.
Переходим к инструкциям!
Несколько замечаний и предположений:
- Пишу это, работая на контроллере версии 5.3.2
- Контроллер установлен на Ubuntu сервере, а не на рабочем столе, так что гостевой портал работает круглосуточно
- Всё делаю на «default» сайте, если вы настраиваете отдельный сайт — нужно будет подправить некоторые URL, добавив вашу siteID
- Использую актуальную версию Google Chrome, но должно работать во всех современных браузерах
- Похоже, есть ограничение на размер загружаемого фонового файла — у меня проблемы возникают с файлами больше 1 МБ, так что лучше держать размер меньше этого для стабильной работы
Заходим в контроллер и выбираем пункт «Guest Control». Разумеется, гостевой портал должен быть включен.
Выбираем следующие опции:
Template Engine: AngularJS
Override Default Templates: ставим галочку
Title: вводим любое название
Portal Customization: выбираем и загружаем фоновое изображение. Не ставьте галочку «Tile Background Image».
Добавьте любые другие настройки на ваше усмотрение — цвета, условия использования, приветственный текст.
Увидите предпросмотр вашего портала. Когда закончите, нажмите «Apply Changes».
Переходим по URL вашего портала. У меня это https://<ipaddress-of-controller>:8443/guest/s/default/#/
(Здесь как раз видно, что изображение не масштабируется — измените размер окна браузера, и фон будет просто обрезаться, а не подстраиваться под окно.)
В Chrome нажмите правой кнопкой по изображению и выберите «Inspect» («Просмотреть»). Откроется панель с HTML кодом — она может появиться либо снизу, либо справа, в зависимости от настроек.
В исходном коде найдите тег <body> и кликните по нему. Справа появятся CSS-свойства тега. Нас интересует свойство background-image — именно там задано фоновое изображение. Скопируйте это значение и сохраните в текстовый файл.
Теперь нужно зайти на сам контроллер и отредактировать несколько файлов. Для моего контроллера файлы находятся здесь:
/usr/lib/unifi/data/sites/default/app-unifi-hotspot-portal
Замените строку:
<link href="css/app.css?v=1.0.2" rel="stylesheet">
на
<link href="css/app.css?v=1.0.2" rel="stylesheet"> <link href="css/background.css" rel="stylesheet">
Зайдите в папку css и создайте новый файл background.css, в который добавьте следующий код:
html {
background: url(/guest/s/default/portalfile/57e17c510cf2e0ad3cbc8fde?portalfile=true) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
Обратите внимание, что URL — это то, что мы скопировали на шестом шаге.
Теперь вернитесь на страницу портала и обновите её. Вы увидите, что внешний вид не изменился, но теперь при изменении размера окна фоновое изображение подстраивается под размер экрана.

