Rails 5: Sprockets::FileNotFound - 找不到类型为 'application/javascript' 的文件 'jquery-ui/autocomplete'

Rails 5: Sprockets::FileNotFound - couldn't find file 'jquery-ui/autocomplete' with type 'application/javascript'

我刚刚将 Rails 应用程序从 4.2.5 升级到 5.0.1

rails 服务器启动正常,但当我尝试加载页面时出现错误:

Sprockets::FileNotFound - couldn't find file 'jquery-ui/autocomplete' with type 'application/javascript'

当我运行bundle我能看到

Using jquery-rails 4.2.2
Using jquery-ui-rails 6.0.1

似乎文件路径已更改。根据 gem readme:

Warning:

Due to directory structure changes between jQuery UI 1.10, 1.11, and 1.12, if you use version is lower than 6.0, you will have to use a different naming for the files to require, please check following links for more information: for 5.0 users, for 4.2 users.

更改 application.js

中的行

来自

//= require jquery-ui/autocomplete

 //= require jquery-ui/widgets/autocomplete

我的情况非常奇怪。当我在 Ubuntu 20 中设置旧的遗留应用程序时,它工作正常,直到我重新启动笔记本电脑。之后它显示了问题中的错误。我检查了我是否使用正确的 ruby 版本的正确 RVM gemset,gems 被捆绑在一起。

当我改变

//= require jquery-ui/autocomplete

//= require jquery-ui/widgets/autocomplete

这条线路通过并运行良好,但接下来的线路开始出现问题。

最终我不得不更改以下所有行:

//= require jquery-ui/widgets/autocomplete
//= require jquery-ui/widgets/datepicker
//= require jquery-ui/widgets/droppable

除此之外: //= require jquery-ui/effect 而且我不知道为什么这一行有效而其他行无效:/