2015-12-23 20 views
6

Nie mogę na całe życie dowiedzieć się, jak zdobyć Sprockets, aby wskazać, który plik spowodował błąd kompilacji. Ja po prostu pojawiają się błędy jak poniżej:Potok zasobów Railsy nie wskazuje, który plik spowodował błąd

coffeescript

Completed 500 Internal Server Error in 14671ms (ActiveRecord: 281.4ms)

ExecJS::RuntimeError - SyntaxError: [stdin]:1:5: unexpected ,:
  execjs (2.6.0) lib/execjs/external_runtime.rb:84:in `extract_result'
<backtrace continues>

który może być wywołany przez dodanie następujących nieprawidłowej składni do dołączonego pliku .coffee:

test, 

Sass

Completed 500 Internal Server Error in 14671ms (ActiveRecord: 281.4ms)

Sass::SyntaxError - Invalid CSS after "0": expected expression (e.g. 1px, bold), was ";":
  sass (3.4.20) lib/sass/scss/parser.rb:1179:in `expected'
<backtrace continues>

który może być wywołany przez dodanie średnika do pliku .sass tak:

.test 
    top: 0; 

W przypadku ostrzeżenia, logi serwera pokazują coś pomocny jak

WARNING on line 9 of /path/to/file.sass: This selector doesn't have any properties and will not be rendered.

Jednakże, błędy składniowe wydaje się po prostu wyrenderować błąd 500 i powiedzieć mi wiersz błędu, ale nie który to był. Przeszukałem ślady i nie podają one żadnych informacji o pliku, w którym wystąpił błąd. Jak uzyskać dane wyjściowe, aby pokazać plik, w którym wystąpił błąd SyntaxError?

Wersje (wszystko ostatni jak to pisze):

  • Rails 4.2.5
  • Sprockets szyn 3.0.0
  • Sprockets 3.5.2
  • Sass-Rails 5.0.4
  • Sass 3.4.20
  • Kawa Rails 4.1.0
  • coffeescript 2.4.1
  • Coffee-Script-Source 1.10.0

Odpowiedz

1

Kontynuuj czytanie tego 500 błędów na swoim serwerze. Powinien pokazać plik i linię pliku, który spowodował błąd. Przykład poniżej mówi app/aktywa/stylów/test.sass: 2

Completed 500 Internal Server Error in 152ms (ActiveRecord: 0.0ms) 

ActionView::Template::Error (Invalid CSS after "0": expected expression (e.g. 1px, bold), was ";"): 
    2: <html> 
    3: <head> 
    4: <title>StackoverflowQuestions</title> 
    5: <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> 
    6: <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 
    7: <%= csrf_meta_tags %> 
    8: </head> 
    app/assets/stylesheets/test.sass:2 
    app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb__1109435584510058936_70275420820360' 
+1

Dziękuję za odpowiedź, ale niestety moje backtraces nie wyglądają tak. Zmieniłem to pytanie tak, aby zawierało pierwszą linię śledzenia wstecznego w razie potrzeby. Po prostu przechodzi dalej przez stos klejnotów, bez odniesienia do nazw plików w moim projekcie. – swrobel