Rundeck登录后所有CSS/JS资源返回404故障求助
Rundeck静态资源404故障排查与解决方法
环境信息
- Rundeck版本:4.8.0
- 操作系统:RHEL 7.9
- 安装方式:RPM包安装
- 数据库类型:文件型数据库
故障现象
- 登录后页面所有CSS、JS静态资源返回404状态码
service.log中存在大量WARN日志:WARN --- [qtpXXXXXX-XXX] org.eclipse.jetty.servlet.ServletHandler: No mapping found for GET /assets/css/rundeck.css
- 页面显示为无样式纯文本结构,浏览器开发者工具可见静态资源请求全部失败
排查步骤
1. 检查静态资源文件完整性
RPM安装的Rundeck静态资源默认路径为/var/lib/rundeck/assets/,执行以下命令校验:
# 确认目录存在 ls -ld /var/lib/rundeck/assets/ # 统计文件数量(正常环境下该目录应有数百个文件) find /var/lib/rundeck/assets/ -type f | wc -l # 检查核心文件权限与存在性 ls -l /var/lib/rundeck/assets/css/rundeck.css
若文件缺失,可能是磁盘空间不足、意外删除或文件系统损坏导致,需补全或修复。
2. 验证服务运行身份
确保Rundeck以rundeck用户运行,避免权限不足无法读取资源:
# 查看进程运行用户 ps aux | grep rundeck | grep -v grep
若运行用户错误,修改/etc/sysconfig/rundeckd配置并重启:
sed -i 's/RUN_AS_USER=.*/RUN_AS_USER=rundeck/' /etc/sysconfig/rundeckd systemctl restart rundeckd
3. 检查上下文路径配置
查看/etc/rundeck/rundeck-config.properties中的路径配置:
grep grails.serverURL /etc/rundeck/rundeck-config.properties
确保grails.serverURL的域名/IP与浏览器访问地址完全一致,若存在路径前缀(如http://server/rundeck),需确认静态资源请求路径匹配该前缀。
4. 排查磁盘与文件系统问题
# 检查磁盘空间 df -h # 检查文件系统完整性(需卸载对应分区或使用安全模式) fsck -n /dev/your-disk-partition
磁盘满则清理日志/无用文件;文件系统损坏则修复后重新检查资源。
5. 清理缓存并重启服务
systemctl stop rundeckd # 清理Jetty临时缓存 rm -rf /var/lib/rundeck/work/ systemctl start rundeckd # 实时监控启动日志 tail -f /var/log/rundeck/service.log
解决方法
- 资源缺失/损坏:重装Rundeck RPM包(保留配置):
yum reinstall rundeck-4.8.0-1.noarch.rpm - 权限错误:递归修复资源目录权限:
chown -R rundeck:rundeck /var/lib/rundeck/assets/ chmod -R 755 /var/lib/rundeck/assets/ - 路径不匹配:修正
grails.serverURL配置后重启服务,确保访问路径与配置一致。
内容的提问来源于stack exchange,提问作者Richard wun
相关产品推荐
相关产品推荐

