Por que o Rails falha ao inicializar com “Esperado encontrar um arquivo de manifesto em` app / assets / config / manifest.js` (Sprockets :: Railtie :: ManifestNeededError) ”?

36

Depois que bundle updatemeu aplicativo Rails falha ao inicializar com:

Expected to find a manifest file in `app/assets/config/manifest.js` (Sprockets::Railtie::ManifestNeededError)
Kris
fonte

Respostas:

44

Eles mudaram as coisas com a versão mais recente dos pinhões. Este erro aparece porque você não manifest.jscriou um . Você precisa criar um e adicionar algumas linhas para garantir que as coisas estejam funcionando.

Etapas fáceis para resolver o problema:

  1. Crie o arquivo manifest.js

    $ mkdir -p app / assets / config

    $ touch app / assets / config / manifest.js

  2. Em seguida, copiar e colar o seguinte no manifest.js arquivo que você acabou de criar:

    //= link_tree ../images
    //= link_directory ../javascripts .js
    //= link_directory ../stylesheets .css
  3. Se você possui uma matriz de pré-compilação em sua app/config/pasta (veja um exemplo abaixo), por exemplo app/config/production.rb, talvez seja necessário movê-la para o seumanifest.js

    config.assets.precompile = ["admin.js", "admin.css"]

Fonte: Agradecimentos ao blog de Richard Schneeman - veja aqui para mais informações.

BKSpurgeon
fonte
Mesmo que eu tenha o arquivo que alambiques diz, espera encontrar um arquivo de manifesto emapp/assets/config/manifest.js
Chris Habgood
@ChrisHabgood muito difícil de depurar sem mais contexto ....... talvez gere um aplicativo mínimo para demonstrar o problema e publicar para empilhar estouro?
BKSpurgeon
16

Uma nova versão principal de rodas dentadas foi lançada recentemente e não é compatível com a versão anterior.

Execute as etapas necessárias para atualizar ou fixe a versão 3.x no Gemfile

gem 'sprockets', '~>3.0'
Kris
fonte