在bundle update
之后,我的Rails应用程序无法 Boot ,原因如下:
Expected to find a manifest file in `app/assets/config/manifest.js` (Sprockets::Railtie::ManifestNeededError)
在bundle update
之后,我的Rails应用程序无法 Boot ,原因如下:
Expected to find a manifest file in `app/assets/config/manifest.js` (Sprockets::Railtie::ManifestNeededError)
4条答案
按热度按时间mec1mxoz1#
发生了什么?
看起来您已经升级了链轮。链轮的较新版本需要一个称为
manifest.js
的文件。您没有。您需要创建一个,并添加一些“指令”。为什么需要这样做?
在旧版本的链轮中,对要捆绑/连接的资产做了很大的假设**-顺便说一句,链轮就是这样做的。
“请给我链轮”
abc
中的所有内容捆绑在一起xyz
中的所有内容admin.js
分离。解决问题的简单步骤:
1.创建清单.js文件
1.然后复制并粘贴以下内容到您刚刚创建的manifest.js文件中:
什么是“指令”?
那些常见的东西
//=
被称为“指令”。如果你还没有这样做,请查看sprockets文档,这样你就不会再保存自己头疼了。下面是一个小例子:
让我们翻译一下
//= link_directory ../javascripts .js
指令:“获取javascript目录中的每个
js
文件,将它们连接起来,并将它们作为单独的javascript文件保存,即不绑定。”如果需要绑定,请使用不同的指令。设置布局模板
您还应该有一个
javascript_include_tag
,它通常放在您的application.html.erb
文件中。如果您有其他单独捆绑的js文件,不要忘记将它们添加到application.html.erb
中,例如:1.如果您在
app/config/environments/production.rb
文件夹中有一个预编译数组(参见下面的示例),那么如果您在上面还没有访问它们,也许您应该将它们移到您的manifest.js
中。配置资产。预编译= [“admin.js”,“admin.css”]
想必你会希望你的
admin.js
javascript文件与你的application.js
文件分开。没问题,只要告诉链轮保持它们分开:1.最后,如果您正在使用webpacker,您可能希望决定您希望资产管道处理什么,以及您希望webpacker处理什么。即,根据您自己的特定用例删除指向javascript文件的link_directory。
参考:请阅读此处以了解有关以下内容的详细信息:清单. js文件
Source: Thanks to Richard Schneeman's blog - see here for more information..
脚注和入门
***连接?通常JavaScript有很多白色。为了加快速度,你可以转换你的JS代码,使它没有空格,这样它就可以快速上传--这就是连接。
bundling?不再像以前那么重要了,但是您可以将多个JS文件合并成一个文件,然后将其发送到浏览器)。最新的更改是朝着正确方向迈出的一步:现在你必须明确地告诉链轮,你想要捆绑和/或连接什么文件:这是在manifest. js文件中完成的,例如:
**编辑:**如果内容令人困惑/不清楚:大声抱怨!2如果你保持沉默,我怎么能修好呢?3每个人都从这些改进中受益。
avwztpqn2#
最近发布了一个新的主要版本的链轮,它与以前的版本不兼容。
执行升级所需的步骤或在Gemfile中固定到版本3.x
m4pnthwp3#
根据此处的答案,您可以使用以下方法解决此问题:
如果您需要更多详细信息,the answer in this thread将帮助您参考从链轮3.x升级到4.x的指南
7cjasjjr4#
如链接http://www.redmine.org/boards/2/topics/58169所示,这是一个已知问题。请参见#32223,链轮4.0.0会破坏Redmine 3.4.11,Ruby〈2.5.0。
我只是用Redmine 3.4.4重现了这个问题,但发现Redmine 3.4.12一切正常。
工作取得http://www.redmine.org/releases/redmine-3.4.12.tar.gz