ambari-server页面错位问题解决

背景:

项目新安装的ambari集群页面错位如下
ambari-server页面错位问题解决_第1张图片

解决办法(临时):

修改ambari-server的前端文件:/usr/lib/ambari-server/web/javascripts/app.js

原代码:

initNavigationBar: function () {
    if (App.get('router.mainController.isClusterDataLoaded')) {
      $('body').on('DOMNodeInserted', '.navigation-bar', function () {
        $('.navigation-bar').navigationBar({
          fitHeight: true,
          collapseNavBarClass: 'icon-double-angle-left',
          expandNavBarClass: 'icon-double-angle-right'
        });
        $('body').off('DOMNodeInserted', '.navigation-bar');
      });
    }
  }.observes('App.router.mainController.isClusterDataLoaded')

替换后代码:

initNavigationBar: function () {
    let navigationBarObserver = null;
    if (App.get('router.mainController.isClusterDataLoaded')) {
      navigationBarObserver = new MutationObserver((mutationsList) => {
        mutationsList.forEach((mutation) => {
          if (mutation.type === 'childList') {
            mutation.addedNodes.forEach((node) => {
              if (node.classList && node.classList.contains('navigation-bar')) {
                $(node).navigationBar({
                  fitHeight: true,
                  collapseNavBarClass: 'icon-double-angle-left',
                  expandNavBarClass: 'icon-double-angle-right'
                });
                navigationBarObserver.disconnect();
              }
            });
          }
        });
      });
      const targetNode = document.body;
      const config = { childList: true, subtree: true };
      navigationBarObserver.observe(targetNode, config);
    }
  }.observes('App.router.mainController.isClusterDataLoaded')

替换后刷新即可恢复。

参考:

链接:Ambari页面在浏览器中出现错位的临时&永久解决办法
以及文中对文件位置的修正评论:
ambari-server页面错位问题解决_第2张图片

你可能感兴趣的:(ambari,hadoop,大数据)