rake assets:precompile funktioniert nicht (rails 3.1.1)
Ich bin die Bereitstellung auf heroku ich sah noch, dass die css-Dateien werden nicht serviert (Sie können auch nicht gefunden werden auf heroku).
Habe ich gelesen, dass ich tun müssen, rake assets:precompile zunächst lokal doch wenn ich es mache bekomme ich:
C:\project>bundle exec rake assets:precompile --trace
** Invoke assets:precompile (first_time)
** Execute assets:precompile
rake aborted!
undefined: Unexpected token: operator (<)
(in C:/project/app/assets/javascripts/application.js)
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
Habe ich nichts application.js also ich verstehe nicht wo der Fehler ist..
application.js ist
// This is a manifest file that'll be compiled into including all the files listed below.
//Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
//be included in the compiled file accessible from http://example.com/assets/application.js
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
//= require jquery
//= require jquery_ujs
//= require_tree .
Danke
Update
Wenn das entfernen ein .js.erb-Datei bekomme ich folgende Fehlermeldung
C:\project>bundle exec rake assets:precompile RAILS_ENV=production --trace
** Invoke assets:precompile (first_time)
** Execute assets:precompile
rake aborted!
706: unexpected token at 'C:\Users\me\AppData\Local\Temp\execjs20111021-6448-ei2nm3.js(2, 3) Microsoft JScript runtime error: Out of memory
'
(in C:/project/app/assets/javascripts/application.js)
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
Immer noch Probleme mit erb css-und js-Dateien nicht kompilieren...
Scheint dies nicht zu Ende..
Dank
- Hast du irgendwelche javascript-Dateien, die sich in Ihrem
javascripts
- Verzeichnis? Die Aussage//= require_tree
zu Lesen versucht das gesamte Verzeichnis in ... - Heroku wird vorkompiliert Ihr Vermögen für Sie, wenn es Sie findet es noch nicht getan, es - devcenter.heroku.com/articles/...
- Ja - ich habe eine Globale.js.erb, die im inneren verfügt über einen Aufruf von <%= asset_path 'pic.jpg' %> und, die Datei befindet sich im Ordner javascripts-Verzeichnis
- ok, weiß nicht, was falsch gelaufen ist.. entfernt execjs,uglifer und coffeescript von Juwel, hat bundle installieren, und Sie Hinzugefügt und DANN wieder entfernt, der erb-Dateien (js und css) aus Vermögen und rake precompile funktioniert.. Wie benutze ich erb in css-und erb dann?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, es ist verursacht durch eine externe javascript-Datei, die ist nicht gut-code formatiert. z.B.
wenn unter den precompile der code würde in 1 Zeile, und da es keine notwendigen Semikolon, der die generierte js Datei enthält wahrscheinlich Fehler, wie
oder so etwas.
so, mein Vorschlag ist:
nicht komprimieren js-Datei, wenn es nicht auch code-formatiert, mit der Einstellung "config.Vermögenswerte.compress = false" in deiner config-Datei, und Folgen Sie @Mike ' s Antwort.
verwenden coffeescript wie möglich, es wird Ihnen helfen, generieren sehr gut formatierten code. ( Ich bin nicht einer coffeescript-guru, also bitte korrigieren Sie mich, wenn ich falsch bin )
Ich habe gekämpft, mit diesem Versuch für die Implementierung auf einem staging-server. Die Lösung, die funktioniert für mich ist, um sicherzustellen, haben Sie die folgenden in Ihrem
config/environments/[your_environment].rb
Datei:Standardmäßig die Kompressoren sind nicht verfügbar in der Umwelt andere als die Produktion, weshalb die precompile-war ein Fehlschlag.
Ich habe das gleiche Problem hier! In meinem Fall, was die Ursache dieses Problem ist, dass ich fügen Sie eine neue JS-Datei javascript-Ordner, und ich bekam eine
undefined: Unexpected token: operator (<)
Fehler, während ich versuchte zu laufen precompile-Befehl. Also schaue ich in die neue js-Datei gefunden und es ist ein HTML-Stil Kommentar<!-- -->
in dieser Datei. Ich Entferne es und das Leben ist gut jetzt!Daher versuchen Sie herauszufinden, gibt es eine HTML-Stil Kommentar
<!-- -->
in Ihre js-Datei, und entfernen Sie einfach die Kommentare. Dies gilt insbesondere, wenn einige JS-code ist kopiert aus der html-Datei!Ich hatte das gleiche Problem und es stellte sich heraus, dass durch die Einbeziehung von ein javascript einbetten, das hatte Kommentare in der Form:
<!-- comment -->
ich habe Sie abgenommen und es funktionierte wie ein Charme! Hoffentlich hilft.eine Sache, die ich bemerkt ist, dass es sein sollte:
die definition der RAILS_ENV gehen muss, bevor die
bundle
Befehl, weil er die Einstellung der shell (bash) - Umgebungsvariablen für die shell, führt diebundle
Befehl.Ihre Probleme zu sein scheint, zu diesem Zusammenhang:
https://github.com/bradphelan/jasminerice/issues/21
Siehe auch:
http://guides.rubyonrails.org/asset_pipeline.html
Heroku rails 3.1-app - Kompilierung Vermögenswerte lokal vs kompilieren Vermögen während der slug compilation
Fehler kompilieren Rails 3 CSS-asset auf Heroku
Ich habe in den letzten 1 Stunde meinen Kopf kratzen nach der Begegnung mit dem gleichen Fehler. Das problem ist folgende Zeile in Ihre application.js:
Dieser bewirkt, dass alle Dateien in Ihrem
app/assets/javascripts/
Verzeichnis enthalten und es könnte sein, dass es irgendeine Art von Fehler in einer anderen Datei in das Verzeichnis. Habe ich entfernt, die Linie und bekam mein Vermögen zu precompile (ich war nicht wirklich mit application.js). So, nach einem Fehler in eine Datei aufgenommen werden, indemapplication.js
Ich hatte ein ähnliches problem:
Dieser entpuppte sich als ein Sie Links über die Datei aus einem merge-Konflikt in Git. Der Konflikt hinterlässt .orig-Datei enthält "<<<<<<<<<<" wo das Git findet sich ein code-block zusammengeführt werden.
Wegen der asset-pipeline Richtlinie
in application.js, alle Dateien in den javascript-Ordner (inkl .orig-Dateien) erhalten vorkompilierte auf eine push-to-Server, wie z.B. Heroku. Der precompiler sucht Fehler mit dem "<<<<<".
Also meine Lösung war zu finden .orig Dateien und löschen Sie Sie aus dem Git mit dem 'git rm Dateiname' - Methode.