1

Ich habe ein Problem mit der Asset-Vorkompilierung. Wenn ich versuche, Vermögenswerte für Produktionsbetrieb vorzukompilieren mit:Rails 4: Ungültiger CSS-Fehler während der Asset-Vorkompilierung im Produktionsmodus

RAILS_ENV=production bundle exec rake assets:precompile 

dieser Fehler angezeigt:

DEPRECATION WARNING: The configuration option `config.serve_static_assets` has been renamed to `config.serve_static_files` to clarify its role (it merely enables serving everything in the `public` folder and is unrelated to the asset pipeline). The `serve_static_assets` alias will be removed in Rails 5.0. Please migrate your configuration files accordingly. (called from block in tsort_each at /usr/local/lib/ruby/2.2.0/tsort.rb:226) 
I, [2016-06-15T18:06:55.828561 #19627] INFO -- : Writing /home/rails/Desktop/hammasir/public/assets/bootstrap.min-f3ab05f17df205c2d2a559852b8609eaa090ea127ff142bfb6ebf090ee187fd4.css 
I, [2016-06-15T18:06:55.913275 #19627] INFO -- : Writing /home/rails/Desktop/hammasir/public/assets/bootstrap.min-f3ab05f17df205c2d2a559852b8609eaa090ea127ff142bfb6ebf090ee187fd4.css.gz 
rake aborted! 
Sass::SyntaxError: Invalid CSS after "}": expected selector or at-rule, was "}" 
(sass):86 
Tasks: TOP => assets:precompile 
(See full trace by running task with --trace) 
zlib(finalizer): Zlib::GzipWriter object must be closed explicitly. 
zlib(finalizer): the stream was freed prematurely. 

Einige andere CSS-Dateien sind, haben auch das gleiche Problem. Es scheint, dass die erwähnten Dateien in Ordnung sind, es gibt keine verpassten} oder; . Alle diese Dateien sind auch bekannte CSS-Dateien wie Bootstrap! Ich überprüfte diese Dateien mit verschiedenen CSS-Debuggern und die Ergebnisse waren unterschiedlich. Eine Zeit ohne Fehler nur einige Warnungen und einmal mit ähnlichen Fehlern in mehreren Zeilen:

Sorry, the at-rule @-webkit-keyframes is not implemented. 

Bitte lassen Sie mich wissen, wenn Sie eine Lösung für dieses Problem.

Darüber hinaus habe ich meine App auf Heroku bereitgestellt und versucht, diese Dateien nach erfolgreicher Bereitstellung hinzuzufügen. Leider haben die Dateien dazu geführt, dass meine App abgestürzt ist. Also, ich denke, ich sollte einen Weg finden, sie im Produktionsmodus erfolgreich vorkompilieren zu können.

Antwort

0

Als ich die Antwort gefunden habe, schreibe ich es hier und wünsche es für andere nützlich zu sein.

Um die deprecation WARNING, lesen Sie in diesem Link zu lösen:

Asset pipeline DEPRECATION WARNING tsort.rb:226

Und über den Fehler, sollten Sie genau, welche Datei verursacht den Fehler finden. Der generierte Fehler und die darin enthaltenen Dateien sind irreführend.

Sie können mit Ihrer Datei assets.rb arbeiten, um herauszufinden, welche Datei (Dateien) Syntaxfehler enthält. Kommentar oder entfernen Sie alle der genannten Dateien in assets.rb mit einer Ausnahme und Redo-Asset precompile Befehl in dem Produktionsmodus:

RAILS_ENV=production bundle exec rake assets:precompile 

und wiederholen Sie es für alle CSS-Dateien zu verstehen, welche den Fehler enthält. Diesmal ist die Ausgabe dieses Befehls hilfreich und bezieht sich genau auf das Problem. Dann wäre es einfach, den Fehler zu finden und zu beheben.