Windows11下rails server启动失败 报tzinfo-data缺失错误
Ruby on Rails启动报TZInfo::DataSourceNotFound错误解决方案
报错根因
错误栈直接定位核心问题:Windows环境运行Rails 7.0.3版本时,tzinfo时区组件找不到可用数据源,缺少强制依赖的tzinfo-data gem,导致Puma启动流程直接退出。
操作流程存在一处前置命令错误:新建Rails应用的命令为rails new test_app,而非gem new test_app,错误命令生成的目录结构不完整,会触发后续各类依赖报错。
分步解决流程
- 先清理错误生成的应用目录,重新执行正确的应用创建命令:
# 删除之前错误命令生成的test_app目录后,执行正确创建命令 rails new test_app
- 进入应用根目录,打开根目录下的
Gemfile配置文件,找到tzinfo-data对应的配置行,确保Windows平台下该gem被启用,不要注释这行,配置参考如下:
# Windows system does not include zoneinfo files, so bundle the tzinfo-data gem gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby]
- 保存Gemfile后,在应用根目录执行依赖安装命令,拉取缺失的gem包:
bundle install
- 如果执行完上述步骤仍报同类tzinfo错误,手动安装和当前tzinfo 2.0.x版本兼容的tzinfo-data包:
gem install tzinfo-data -v '~> 2.0'
- 依赖安装完成后,执行启动命令验证服务:
rails server # 如果存在全局gem版本冲突,用bundle exec前缀执行 # bundle exec rails server
其他同类报错排查
- 若后续出现webpacker相关报错,是因为Rails 7默认使用importmaps作为前端资源方案,不需要全局安装webpacker。如果确实需要使用webpacker,新建应用时要加指定参数:
rails new test_app -j webpacker。 - 若出现sqlite3相关加载错误,注意安装sqlite3 gem时要匹配本地Ruby版本,Windows环境建议直接使用带Devkit的Ruby安装包,避免编译依赖缺失。
内容的提问来源于stack exchange,提问作者Azizbek Nusratilloyev
相关产品推荐
相关产品推荐

