I am trying to figure out why I am getting this message Sprockets::ArgumentError: link_tree argument must be a directory. This is a minty fresh Rails 7.0.5 installation configured with Tailwindcss (using the --css tailwind option) that runs fine in development environment, but when I try to deploy using Capistrano it fails at when precompiling the assets on my Ubuntu 20.04 server. Here's a relevant portion of the console output:
00:26 deploy:assets:precompile
01 $HOME/.rbenv/bin/rbenv exec bundle exec rake assets:precompile
01
01 Rebuilding...
01
01 Done in 1073ms.
01 rake aborted!
01 Sprockets::ArgumentError: link_tree argument must be a directory
01 /var/www/ai_demo/releases/20230524232929/app/assets/config/manifest.js:4
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/directive_processor.rb:407:…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/directive_processor.rb:359:…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/directive_processor.rb:189:…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/directive_processor.rb:187:…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/directive_processor.rb:187:…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/directive_processor.rb:84:i…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/directive_processor.rb:65:i…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/processor_utils.rb:84:in `c…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/processor_utils.rb:66:in `b…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/processor_utils.rb:65:in `r…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/processor_utils.rb:65:in `c…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/loader.rb:182:in `load_from…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/loader.rb:59:in `block in l…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/loader.rb:337:in `fetch_ass…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/loader.rb:43:in `load'
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/cached_environment.rb:44:in…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/map.…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/map.…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/map.…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/cached_environment.rb:44:in…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/bundle.rb:27:in `call'
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/processor_utils.rb:84:in `c…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/processor_utils.rb:66:in `b…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/processor_utils.rb:65:in `r…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/processor_utils.rb:65:in `c…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/loader.rb:182:in `load_from…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/loader.rb:59:in `block in l…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/loader.rb:337:in `fetch_ass…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/loader.rb:43:in `load'
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/cached_environment.rb:44:in…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/map.…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/map.…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/map.…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/cached_environment.rb:44:in…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/base.rb:81:in `find_asset'
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/base.rb:88:in `find_all_lin…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/manifest.rb:125:in `each'
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/manifest.rb:125:in `to_a'
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/sprockets-4.2.0/lib/sprockets/manifest.rb:125:in `block (…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/exec…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/sync…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/sync…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/sync…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/exec…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/prom…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/exec…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/exec…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/exec…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/exec…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/exec…
01 /var/www/ai_demo/shared/bundle/ruby/3.1.0/gems/concurrent-ruby-1.2.2/lib/concurrent-ruby/concurrent/exec…
01 Tasks: TOP => assets:precompile
This is my rails environment:
Rails version 7.0.5 Ruby version ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [arm64-darwin22] RubyGems version 3.3.7 Rack version 2.2.7 Middleware ActionDispatch::HostAuthorization, Rack::Sendfile, ActionDispatch::Static, ActionDispatch::Executor, ActionDispatch::ServerTiming, ActiveSupport::Cache::Strategy::LocalCache::Middleware, Rack::Runtime, Rack::MethodOverride, ActionDispatch::RequestId, ActionDispatch::RemoteIp, Sprockets::Rails::QuietAssets, Rails::Rack::Logger, ActionDispatch::ShowExceptions, WebConsole::Middleware, ActionDispatch::DebugExceptions, ActionDispatch::ActionableExceptions, ActionDispatch::Reloader, ActionDispatch::Callbacks, ActiveRecord::Migration::CheckPending, ActionDispatch::Cookies, ActionDispatch::Session::CookieStore, ActionDispatch::Flash, ActionDispatch::ContentSecurityPolicy::Middleware, ActionDispatch::PermissionsPolicy::Middleware, Rack::Head, Rack::ConditionalGet, Rack::ETag, Rack::TempfileReaper Application root /Users/scervera/app_dev_local/rails_projects/AiDemo Environment development Database adapter postgresql Database schema version 0
I was able to clear the errors by removing this line from my manifest.js file in /app/assets/config/manifest.js
//= link_tree ../../../vendor/javascript .jsI'm not yet sure how that will bite me down the road.
UPDATE: I had to add this line back in for the tailwindcss_rails gem's javascript to function. Makes sense.