AngularJS + Rails - Probleme beim Komprimieren von Assets

8

Ich habe vor kurzem eine AngularJS 1.0.0rc8 App mit einem Rails 3.2.3 Backend erstellt und es funktionierte gut in der Entwicklung, aber nach der Bereitstellung auf Heroku gab es einen Unbekannter Provider Fehler - anscheinend die App konnte das Serviceobjekt nicht sehen.

Ich weiß, dass es jetzt notwendig ist, angular-resource.js als separate Datei einzubinden und ngResource wie folgt in das App-Modul einzufügen:

%Vor%

Ich weiß auch, dass, wenn Dateien minimiert werden, die Controller nicht erkennen können, was ihre Abhängigkeiten sind, wenn sie nicht auch in die Controller-Objekte wie folgt eingefügt werden:

%Vor%

Ich habe es auch auf die andere Art und Weise versucht, die Angular mit der Klammernotation und der Übergabe einer Funktion wie dieser empfiehlt:

%Vor%

Nichts davon scheint zu funktionieren.

Der einzige Weg, wie meine Anwendung die Ressource sehen konnte, war, die Inhaltskomprimierung in der Datei Production.rb wie folgt auszuschalten:

%Vor%

Es hat mehrere Stunden gedauert, bis ich das herausgefunden hatte, aber ich habe kürzlich eine andere Rails + AngularJS-App gesehen, die das gleiche Problem hatte.

Jens Krause kommt zu demselben Schluss und erklärt es auf seinem Blog: Ссылка

Wenn ich eine relativ große App habe und die Assets komprimieren muss, wie komme ich dann mit Angular with Rails zurecht?

Danke.

    
PhillipKregg 18.05.2012, 21:18
quelle

3 Antworten

7

Wenn Sie Rails 4 verwenden, ändern Sie Ihre js_compressor in Ihren Produktions- und Bereitstellungsumgebungen in:

%Vor%     
Neal 24.01.2014 23:10
quelle
3

Ich denke, das Problem besteht darin, dass Ihr Minifier den Variablennamen des Steuerelements (ContactListCtrl - & gt; a oder was auch immer es tut) immer noch verdeckt.

Haben Sie versucht, Ihre Controller mit der Funktion module.controller zu definieren?

%Vor%     
Andrew Joslin 20.05.2012 00:41
quelle
2

Das Hinzufügen dieser Zeile zu meiner config / environments / production.rb hat den Trick für mich gemacht:

%Vor%     
jesal 12.06.2013 18:08
quelle