Dlaczego Rails nie uruchamia się z „Oczekiwanym znalezieniem pliku manifestu w` app / asset / config / manifest.js` (Sprockets :: Railtie :: ManifestNeededError)?

35

Gdy bundle updatemoja aplikacja Rails nie uruchamia się z:

Expected to find a manifest file in `app/assets/config/manifest.js` (Sprockets::Railtie::ManifestNeededError)
Kris
źródło

Odpowiedzi:

43

Zmienili rzeczy z najnowszą wersją zębatek. Ten błąd pojawia się, ponieważ nie maszmanifest.js utworzonego. Musisz go utworzyć i dodać kilka wierszy, aby upewnić się, że wszystko działa.

Proste kroki w celu rozwiązania problemu:

  1. Utwórz manifest.js plik

    $ mkdir -p app / asset / config

    $ touch app / asset / config / manifest.js

  2. Następnie skopiuj i wklej następujące elementy do właśnie utworzonego pliku manifest.js:

    //= link_tree ../images
    //= link_directory ../javascripts .js
    //= link_directory ../stylesheets .css
  3. Jeśli masz w app/config/folderze tablicę prekompilacji (patrz przykład poniżej), app/config/production.rbbyć może powinieneś przenieść ją do swojegomanifest.js

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

Źródło: Dzięki blogowi Richarda Schneemana - więcej informacji znajdziesz tutaj.

BKSpurgeon
źródło
Mimo że mam plik, który nadal wyświetla, spodziewane jest znalezienie pliku manifestu wapp/assets/config/manifest.js
Chris Habgood
@ChrisHabgood bardzo trudno jest debugować bez większego kontekstu ... być może uruchomisz minimalną aplikację, aby pokazać problem i opublikować przepełnienie stosu?
BKSpurgeon
15

Niedawno wydano nową główną wersję zębatek, która nie jest kompatybilna z poprzednią wersją.

Wykonaj kroki niezbędne do aktualizacji lub przypnij do wersji 3.x w Gemfile

gem 'sprockets', '~>3.0'
Kris
źródło