【发布时间】:2023-02-01 20:31:40
【问题描述】:
我正在尝试在本地预编译资产(用于生产),但出现错误。
我的步骤:
- bundle exec rake assets:clobber --trace(删除公共/资产,以便我执行干净的编译)
- bundle exec rake assets:precompile RAILS_ENV=production --trace(编译准备上传到 GitHub/Heroku 的资产)
我在用:Rails (5.2.2)、Ruby (2.6.6)、Bundler (2.4.4)、Windows (10)
怎么了我的很多 .js / .css / .jpg / .png 文件似乎都可以预编译,但是当它到达这个 glyphicons-halflings-regular 文件时总是会出错。 (实际上 24 小时前它在一个 .png 文件上绊倒了——我不确定从那以后发生了什么变化——我想我更新了捆绑器版本,现在它在另一个文件上失败了)
错误信息:
Errno::ENOENT: No such file or directory @ rb_sysopen - C:/Users/..../...../public/assets/flatty/bootstrap/glyphicons-halflings-regular-5ff7c239555476e939e86d457bb78424b945b733b2c23791d9807c2357259d43.eot.103323240.10692.178366 C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sprockets-3.7.2/lib/sprockets/path_utils.rb:278:in `initialize' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sprockets-3.7.2/lib/sprockets/path_utils.rb:278:in `open' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sprockets-3.7.2/lib/sprockets/path_utils.rb:278:in `atomic_write' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sprockets-3.7.2/lib/sprockets/asset.rb:165:in `write_to' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sprockets-3.7.2/lib/sprockets/manifest.rb:210:in `block (2 levels) in compile' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:24:in `block in execute' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:41:in `block in synchronize' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:41:in `synchronize' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/synchronization/mutex_lockable_object.rb:41:in `synchronize' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb:19:in `execute' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/ivar.rb:169:in `safe_execute' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/future.rb:55:in `block in execute' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:363:in `run_task' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:352:in `block (3 levels) in create_worker' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:335:in `loop' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:335:in `block (2 levels) in create_worker' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:334:in `catch' C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/concurrent-ruby-1.1.8/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb:334:in `block in create_worker' Tasks: TOP => assets:precompile问题:
有任何想法吗?我知道我的很多 gem 都在旧版本上,但是这个预编译曾经对我有用,我不知道发生了什么变化。可能是因为某些 gems 或 ruby 或 bundler 或其他东西正在使用旧版本(但它们曾经工作过?)
【问题讨论】:
-
更新:我恢复到 bundler 1.17.3 并得到了同样的错误
标签: ruby-on-rails assets precompile