Warum startet Rails nicht mit "Erwartet, dass eine Manifestdatei in" app / assets / config / manifest.js "(Sprockets :: Railtie :: ManifestNeededError) gefunden wird"?

36

Nachdem bundle updatemeine Rails-App nicht gestartet werden kann mit:

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

Antworten:

43

Sie haben die Dinge mit der neuesten Version der Kettenräder geändert. Dieser Fehler tritt auf, weil Sie keine manifest.jserstellt haben. Sie müssen eine erstellen und in einigen Zeilen hinzufügen, um sicherzustellen, dass die Dinge funktionieren.

Einfache Schritte zur Lösung des Problems:

  1. Erstellen Sie die Datei manifest.js

    $ mkdir -p app / assets / config

    $ touch app / assets / config / manifest.js

  2. Dann kopieren und einfügen , die folgende in die manifest.js Datei , die Sie gerade erstellt haben :

    //= link_tree ../images
    //= link_directory ../javascripts .js
    //= link_directory ../stylesheets .css
  3. Wenn Sie ein vorkompiliertes Array in Ihrem app/config/Ordner haben (siehe unten für ein Beispiel), z. B. app/config/production.rbsollten Sie es möglicherweise auf Ihr Array verschiebenmanifest.js

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

Quelle: Dank Richard Schneemans Blog - siehe hier für weitere Informationen ..

BKSpurgeon
quelle
Obwohl ich die Datei habe, in der immer noch steht, wird voraussichtlich eine Manifestdatei inapp/assets/config/manifest.js
Chris Habgood,
@ChrisHabgood sehr schwer zu debuggen ohne mehr Kontext ....... vielleicht eine minimale App starten, um das Problem zu demonstrieren und auf Stapelüberlauf zu posten?
BKSpurgeon
15

Kürzlich wurde eine neue Hauptversion von Kettenrädern veröffentlicht, die nicht mit der vorherigen Version kompatibel ist.

Führen Sie entweder die für das Upgrade erforderlichen Schritte aus oder stecken Sie die Version 3.x in Gemfile fest

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