我在生产服务器上设置了一个典型的 rails 6.0.2 应用程序,我正在使用 git 钩子来部署该应用程序。 当我尝试运行时:rails assets:precompile
出现以下错误:
rake aborted!
Sprockets::ArgumentError: link_directory argument must be a directory
/home/user/myapp/app/assets/config/manifest.js:2
这是清单.js文件
//= link_tree ../images
//= link_directory ../stylesheets .css
我不知道我做错了什么。 除非我弄错了,否则网络打包器不会取代链轮吗?
对于收到此错误的其他任何人,我只是在assets
中添加了一个目录,称为stylesheets
,并在其中添加了文件.keep
。 这解决了我的问题。
在manifest.js
中,您的错误告诉manifest.js
第 2 行中,link_directory
参数必须是目录,而不是文件。它可能看起来像这样
//= link_directory ../stylesheets .css
如果你注意到stylesheets
和.css
之间有间隙,这意味着链接stylesheets
目录中的所有css
文件,你的代码中一定存在一些格式问题。修复它,它应该可以工作!
在images
和javascript
文件夹中添加一个.keep
文件为我修复了它。
仔细检查所有资产文件夹中的 empt.keep
文件
常见的罪魁祸首可能是图像文件夹
这篇文章也可能有所帮助
require_tree参数必须是 Rails 5 升级应用程序中的目录