Rails 6 个链轮错误,找不到 source.coffee 文件

Rails 6 sprockets error, cannot find source.coffee file

rails 5.2升级到rails 6.0.1,在开发模式下加载页面时出现以下错误:

Sprockets::FileNotFound - couldn't find file 'leaders.source.coffee'
Checked in these paths: 
  app/assets/audios
  app/assets/config
  app/assets/images
 ...

我的 app/javascripts 目录没有任何名为 leaders.source.coffee 的文件或任何以 leaders 开头的文件。我搜索了我的代码库,但找不到对 leaders.

的任何引用

我的清单文件是

#app/assets/config/manifest.js is
//= link_tree ../images
//= link_tree ../audios
//= link application.css
//= link application.js
//= link print.css

我该如何解决这个问题?

我不确定为什么,但是将 debug 设置为 false 解决了这个问题,即

config/environments/development.rb

config.assets.debug = 假

如果这不起作用,或者您不能永久使用此设置,您可能想尝试下面@Guillaume Petit 的回答。

如果我从命令行调用 rails generate controller [controllername],我会得到同样的错误,但如果我手动制作控制器则不会。我猜在生成文件的内容以及 运行 文件中存在某种版本冲突。手动制作东西并没有太多工作,所以我只是用它作为解决方法。

解决方案是进入 app/assets/javascripts/ 并删除那里生成的咖啡文件。我们的猜测是我们正在处理的样板代码(我们是学生)是问题的根源。

我的问题是 require_tree . 在子目录中拉入一个 coffeescript 文件。如果文件存在,我会收到一条错误消息,它无法在根目录中找到它。该文件是空的,没有代码,只有评论,所以我删除了它,但随后我收到一条错误消息,说在子目录中找不到它。

我通过从 sprockets 4.0.2 降级到 `3.7.2' 解决了这个问题。

gem 'sprockets', '3.7.2'

删除缓存文件夹对我有用

rm -rf tmp/cache