Rails 6生产环境中的Webpacker:运行rake assets:precompile失败

3

我有一个典型的 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代码粘贴在问题中? - Rajdeep Singh
4个回答

7

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


在我将样式表移动到js/packs文件夹以使webpacker正常工作后,这对我很有帮助。 - JoshL
我创建了 app/images/.keep 文件(因为在我的情况下,静态资源而非 CSS 失败)。 - stevec

2
manifest.js中,您的错误提示表明在第2行,link_directory参数必须是一个目录而不是文件。它应该像这样:"link_directory": "your_directory/"
//= link_directory ../stylesheets .css

如果你注意到了stylesheets.css之间存在差异,那么这意味着需要从stylesheets目录链接所有的css文件,但你的代码中可能存在格式问题。请修复它,然后就可以正常工作了!

谢谢你的帮助。我已经更新了我的问题,并附上了来自我的manifest.js文件的代码。我不确定你所说的“格式问题”是什么意思,你能给我更多信息吗? - greyoxide

2
imagesjavascript文件夹中添加.keep文件就可以解决这个问题。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接