rails 6 个 webpacker 在生产中:rake assets:precompile 失败

rails 6 webpacker in production: rake assets:precompile fails

我在生产服务器上设置了一个典型的 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

这是 manifest.js 文件

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

我不知道我做错了什么。万一我记错了,webpacker 不是代替了 sprockets 吗?

manifest.js 中,您的错误告诉您在 manifest.js 第 2 行中,link_directory 参数必须是目录,而不是文件。大概应该是这样的

//= link_directory ../stylesheets .css

如果您注意到 stylesheets.css 之间有空隙,这意味着 link stylesheets 目录中的所有 css 文件,必须有是您的代码中的一些格式问题。修复它,它应该可以工作!

仔细检查所有资产文件夹中的空 .keep 文件

常见的罪魁祸首可能是图像文件夹

这个 post 也可能有帮助

对于遇到此错误的任何其他人,我只是在 assets 中添加了一个名为 stylesheets 的目录,并在其中添加了一个文件 .keep。这解决了我的问题。

imagesjavascript 文件夹中添加一个 .keep 文件帮我解决了这个问题。