3

I have a typical rails 6.0.2 app set up on a production server and I'm using git hooks to deploy the app. When I try to run: rails assets:precompile I get the following error:

rake aborted!
Sprockets::ArgumentError: link_directory argument must be a directory
/home/user/myapp/app/assets/config/manifest.js:2

Here is the manifest.js file

//= link_tree ../images
//= link_directory ../stylesheets .css

I cant figure out what Im doing wrong. Unless I'm mistaken, doesn't webpacker replace sprockets?

greyoxide
  • 1,197
  • 1
  • 17
  • 45

4 Answers4

7

For anyone else who got this error, I simply added a directory in assets, called stylesheets, and added a file .keep within it. That fixed my problem.

kroe761
  • 3,296
  • 9
  • 52
  • 81
  • This did it for me after I moved stylesheets un the js/packs folder for webpacker to work properly – JoshL Mar 06 '21 at 19:02
  • I created app/images/.keep (since in my case it was failing for static assets, not css). – stevec Feb 09 '22 at 20:29
2

In manifest.js, your error tells that in manifest.js line 2, link_directory argument must be a directory, and not a file. It should probably look like this

//= link_directory ../stylesheets .css

If you notice there is gap between stylesheets and .css, it means that link all the css files from stylesheets directory, there must be some formatting problem in your code. Fix it and it should work!

Rajdeep Singh
  • 17,621
  • 6
  • 53
  • 78
  • thanks for your help. I've updated my question with the code from my manifest.js file. Im not sure what you mean by 'formatting problem' can you give me some more info? – greyoxide Feb 13 '20 at 22:40
2

Adding a .keep file in both the images and javascript folders fixed it for me.

Uloaku
  • 21
  • 1
0

double check all the asset folder for an empt .keep file

common culprit could be images folder

this post may also help out

require_tree argument must be a directory in a Rails 5 upgraded app

Denis S Dujota
  • 543
  • 5
  • 13