如何修改Apache Superset全页面(含登录、欢迎页)的CSS样式?
Superset 1.3.2 全局CSS自定义问题解答
修改静态文件不生效的原因
你直接修改/Users/swastikn/superset/lib/python3.9/site-packages/superset/static/assets/stylesheets下的样式文件不生效,是因为Superset 1.3.2运行时加载的是提前编译压缩后的静态资源,不是目录下的源样式文件。
你之前通过edit css选项修改仪表盘样式生效,是因为该功能是运行时向仪表盘页面注入自定义CSS,作用范围仅覆盖仪表盘相关页面,不会作用于登录、欢迎等全局页面。
全局页面CSS自定义方案
欢迎页、登录页等所有Superset页面均支持自定义修改,推荐以下两种方案:
方案1:配置注入全局CSS(无需编译,操作简便)
通过Superset配置项向所有页面头部注入自定义CSS,不需要修改源码、不需要编译前端资源:
- 找到你的
superset_config.py配置文件,若没有可以新建一个 - 在配置文件中添加如下内容:
# 全局自定义CSS注入配置 APPEND_CUSTOM_HTML_HEAD = """ <style> /* 此处写入你需要的全局样式,示例如下:*/ /* 修改全局导航栏背景色 */ .navbar { background-color: #165DFF !important; height: 64px !important; } /* 修改登录页logo */ .login-container .brand-logo { content: url("你的logo本地路径或base64地址") !important; width: 120px !important; } /* 修改欢迎页标题样式 */ .welcome-page .page-header h1 { font-size: 24px !important; } </style> """
- 启动Superset前指定配置文件路径:
export SUPERSET_CONFIG_PATH=/你放配置文件的路径/superset_config.py - 重启Superset服务即可生效,所有页面都会自动加载这段自定义CSS
方案2:重新编译前端资源(适合深度定制场景)
如果需要大规模修改全局样式,可通过重新编译前端资源实现:
- 安装适配依赖:Node.js 14.x、yarn包管理器
- 进入虚拟环境中Superset的前端源码目录:
cd /Users/swastikn/superset/lib/python3.9/site-packages/superset/frontend - 安装前端依赖:
yarn install - 修改
src/assets/stylesheets/目录下对应的样式源文件 - 执行编译命令:
yarn build,编译完成后新的静态资源会自动更新到static目录 - 重启Superset服务即可生效
内容的提问来源于stack exchange,提问作者Swastik
相关产品推荐
相关产品推荐

