Windows机器上rake assets:precompile执行失败问题咨询
解决Rails 5.1 Windows环境下
rake assets:precompile异常问题 我之前在Windows环境下处理过好几个类似的Rails 5.1资产预编译故障,给你几个实测有效的解决方向:
- 解决Windows路径长度限制问题
Windows默认有路径长度限制(约260字符),Rails生成的带哈希的资产文件名很容易让路径超出限制,导致写入中断。你可以试试两个方案:- 启用Windows的长路径支持(Windows 10 1607及以上版本可通过组策略或注册表开启);
- 缩短Rails生成的资产哈希长度,在
config/application.rb中添加配置:
config.assets.digest_length = 16
修改后重启终端,再执行预编译命令。
- 锁定Sprockets兼容版本
Rails 5.1默认的Sprockets版本在Windows上可能存在兼容性问题,建议锁定到3.x的稳定版本:
在Gemfile中修改:
gem 'sprockets', '~> 3.7.2'
然后执行bundle update sprockets,更新依赖后重新尝试预编译。
- 明确指定环境并切换Shell执行
有时候默认执行环境不是production,或者PowerShell的命令解析有问题,试试在CMD中执行明确指定环境的命令:
bundle exec rake assets:precompile RAILS_ENV=production
- 清理缓存后重试
先清理旧的资产缓存和临时文件,避免残留文件干扰:
bundle exec rake assets:clean bundle exec rake tmp:clear
完成后再重新运行预编译命令。
内容的提问来源于stack exchange,提问作者Uli
相关产品推荐
相关产品推荐

