为什么Rails无法通过“预计在`app / assets / config / manifest.js`中找到清单文件(Sprockets :: Railtie :: ManifestNeededError)”启动?

Kri*_*ris 18 ruby-on-rails ruby-on-rails-5

经过bundle update我的Rails应用程序未能启动用:

Expected to find a manifest file in `app/assets/config/manifest.js` (Sprockets::Railtie::ManifestNeededError)
Run Code Online (Sandbox Code Playgroud)

BKS*_*eon 15

他们使用最新版本的链轮改变了一切。出现此错误是因为您尚未manifest.js创建。您需要创建一个,然后添加几行以确保一切正常。

解决问题的简单步骤:

  1. 创建manifest.js文件

    $ mkdir -p应用程序/资产/配置

    $ touch app / assets / config / manifest.js

  2. 然后以下内容复制并粘贴到刚创建的manifest.js文件中:

    //= link_tree ../images
    //= link_directory ../javascripts .js
    //= link_directory ../stylesheets .css
    
    Run Code Online (Sandbox Code Playgroud)
  3. 如果您的app/config/文件夹中有一个预编译数组(例如,请参见下面的示例),app/config/production.rb那么也许您应该将它们移到您的manifest.js

    config.assets.precompile = [“ admin.js”,“ admin.css”]

资料来源:感谢Richard Schneeman的博客-有关更多信息,请参见此处。

  • 即使我有该文件,它仍然显示,期望在“app/assets/config/manifest.js”中找到一个清单文件 (2认同)

Kri*_*ris 7

最近发布了新的主链轮版本,该版本与以前的版本不兼容。

执行升级或固定到Gemfile版本3.x 所需步骤

gem 'sprockets', '~>3.0'
Run Code Online (Sandbox Code Playgroud)


may*_*ron 7

根据此处答案,您可以使用以下方法解决此问题:

mkdir -p app/assets/config && echo '{}' > app/assets/config/manifest.js
Run Code Online (Sandbox Code Playgroud)

如果您需要更多详细信息,此线程中的答案有助于指向从 Sprockets 3.x 升级到 4.x指南