Pourquoi Rails ne parvient-il pas à démarrer avec «Attendu pour trouver un fichier manifeste dans« app / assets / config / manifest.js »(Sprockets :: Railtie :: ManifestNeededError)»?

36

Après que bundle updatemon application Rails ne démarre pas avec:

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

Réponses:

44

Ils ont changé les choses avec la dernière version des pignons. Cette erreur se produit car vous n'en avez pas manifest.jscréé. Vous devez en créer un et ajouter quelques lignes pour vous assurer que les choses fonctionnent.

Étapes faciles pour résoudre le problème:

  1. Créez le fichier manifest.js

    $ mkdir -p app / actifs / config

    $ touch app / assets / config / manifest.js

  2. Ensuite , copiez et collez le texte suivant dans les manifest.js que vous venez de créer fichier:

    //= link_tree ../images
    //= link_directory ../javascripts .js
    //= link_directory ../stylesheets .css
  3. Si vous avez un tableau de précompilation dans votre app/config/dossier (voir ci-dessous pour un exemple), par exemple, app/config/production.rbvous devriez peut-être les déplacer vers votremanifest.js

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

Source: Merci au blog de Richard Schneeman - voir ici pour plus d'informations ..

BKSpurgeon
la source
Même si j'ai le fichier qu'il dit toujours, devrait trouver un fichier manifeste dansapp/assets/config/manifest.js
Chris Habgood
@ChrisHabgood très difficile à déboguer sans plus de contexte ....... peut-être faire tourner une application minimale pour démo le problème et poster pour déborder la pile?
BKSpurgeon
16

Une nouvelle version majeure des pignons a été récemment publiée, qui n'est pas compatible avec la version précédente.

Exécutez les étapes nécessaires pour mettre à niveau ou épinglez la version 3.x dans Gemfile

gem 'sprockets', '~>3.0'
Kris
la source