Замечено, что при использовании веб-интерфейса Patchman, работающего на базе веб-фреймворка Django, в контексте учётной записи, не имеющей доступа в интернет, возникает проблема корректного отображения веб-страниц. То есть сами по себе веб страницы загружаются и отображают данные, но видно, что не работают каскадные таблицы стилей и есть проблемы с веб-элементами, использующими JS. В этой ситуации, если запустить в браузере режим отладки (F12), то можно увидеть, что происходит попытка загрузки стилей и скриптов из интернета.
Связно это с тем, что в шаблонах фреймворка Django по умолчанию используются ссылки на внешние интернет-ресурсы:
https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css
https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js
https://code.jquery.com/jquery.min.js
Первая идея, которая может появиться в качестве решения этой проблемы, - скачать недостающие файлы из интернета, разместить на локальном веб-сервере и переопределить их назначение в конфигурации Django так, как это описано здесь: django-bootstrap3 pre-configured settings. Но на самом деле, скачивать эти файлы в ситуации с Patchman не нужно, так как необходимые файлы уже есть в системе и даже, более того, находятся непосредственно в подкаталогах контента Patchman, доступных относительно корневого каталога веб-сайта.
/var/lib/patchman/static/rest_framework/js/jquery.min.js
/var/lib/patchman/static/rest_framework/js/bootstrap.min.js
/var/lib/patchman/static/rest_framework/css/bootstrap.min.css
Поэтому всё, что нужно сделать для исправления обозначенной проблемы, - внести переопределения в конфигурационный файл Patchman:
# nano /etc/patchman/local_settings.py
В конец файла добавим следующий блок переопределений путей к файлам:
BOOTSTRAP3 = {
"css_url": "/patchman/static/rest_framework/css/bootstrap.min.css",
"javascript_url": "/patchman/static/rest_framework/js/bootstrap.min.js",
"jquery_url": "/patchman/static/rest_framework/js/jquery.min.js",
}
Для вступления изменений в силу перезапустим службу веб-сервера:
# systemctl status apache2.service
После этого очистим кеш браузера и снова проверим работу веб-интерфейса Patchman.
Теперь отображение веб-страниц должно работать корректно у всех пользователей, независимо от того есть у них доступ в интернет или нет.
Добавить комментарий