ManageIQ容器启动后所有文件返回404 Not Found public目录应部署到什么位置
问题解决方案
你遇到的静态资源404问题无需通过手动移动public/目录文件解决,具体修复步骤如下:
- 首先明确:
config/application.rb中的TODO注释是项目自身的重构规划,并非面向使用者的操作指引,不要手动将public/下的资源迁移到app/assets/。 - 问题核心原因是镜像构建过程中缺少静态资源预编译步骤,你需要修改项目根目录的Dockerfile,在依赖安装完成的步骤后添加如下命令:
该命令会自动将项目所有静态资源编译后输出到RUN bundle exec rails assets:precompilepublic/assets/目录,Rails会默认从该路径读取资源提供服务。 - 如果你是用开发模式启动容器,需额外修改
config/environments/development.rb配置:- 开启静态资源服务:
config.public_file_server.enabled = true - 开启实时资源编译:
config.assets.compile = true
- 开启静态资源服务:
- 生产环境部署时需确保容器启动时环境变量
RAILS_ENV=production,否则Rails不会加载预编译后的静态资源。
错误参考截图
- 默认登录页异常:

- 浏览器控制台资源加载报错:

内容的提问来源于stack exchange,提问作者user630702
相关产品推荐
相关产品推荐

