从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
...
我的应用程序/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
我该如何解决这个问题?
我不知道为什么,但是将调试设置为 false 解决了这个问题,即
config/environment/development.rb
config.assets.debug = false
如果这不起作用,或者您无法永久使用此设置,您可能想尝试下面的 Petit @Guillaume答案。
删除缓存文件夹对我来说很有用
rm -rf tmp/cache
如果我从命令行调用rails generate controller [controllername]
,我会收到同样的错误,但如果我手动制作控制器,则不会。我猜生成文件的内容和运行文件的内容存在某种版本冲突。手动制作这些东西并没有更多的工作,所以我只是将其用作解决方法。
解决方案是进入app/assets/javascripts/
并删除在那里生成的咖啡文件。我们的猜测是,我们正在处理的样板代码(我们是学生(是问题的根源。
我的问题是require_tree .
正在子目录中拉入一个咖啡脚本文件。 如果该文件存在,我会收到一条错误消息,它在根目录中找不到它。 该文件是空的,没有代码,只有注释,所以我删除了它,但随后我收到一条错误消息,指出在子目录中查找时找不到它。
我通过从sprockets 4.0.2
降级到"3.7.2"来解决这个问题。
gem 'sprockets', '3.7.2'