2014-01-17 14 views
5

Ich hatte vor kurzem ein Problem mit Galleria Plugin arbeiten mit Rails 4 Pipeline und es dauerte eine Weile, um herauszufinden, wie es funktioniert, also wollte ich die Lösung in teilen Falls jemand ein ähnliches Problem hat.Wie Galleria Plugin mit Rails 4 Pipeline zu verwenden

1) Nach dem Plugin herunterzuladen, setzen galleria-1.3.3.js (es ist die aktuelle Version auf dem Tag, als ich es schreiben) und galleria.classic.js (oder andere Datei-Stil js) zu vendor/assets/javascripts

2) Setzen Sie galleria.classic.css (oder ein anderes Thema Sheet) zu vendor/assets/stylesheets

3) In //= require galleria-1.3.3 und //= require galleria.classic auf Ihre application.js Datei und *= require galleria.classic zu application.css Datei

4) Asset-Pipeline fügt Fingerabdrücke zu den Bildern hinzu und macht es schwierig, über gewöhnliches css auf sie zuzugreifen, also ist es notwendig, 'scss' zu deinem Galleria-Stylesheet hinzuzufügen, wie galleria.classic.css.scss und url(classic-map.png) zu asset_url("classic-map.png"); und dasselbe mit dem zweiten Bild.

5) Öffnen galleria.classic.js Datei und finden dort css:"galleria.classic.css" oder so etwas, und ändern Sie es in css: false

6) Jetzt müssen Sie nur Galleria.run('#galleria'); oder etwas anderes für andere Elemente hinzuzufügen, in einigen js file` und das sollte arbeiten :)

PS ich bin ein noob in Rails und vielleicht ein paar dummen Fehler gemacht haben, aber ich hoffe, dass dies für jeden hilfreich sein wird :)

+0

genau das, was ich suche, thks viel – Tommy

Antwort

5

I‘ Ich habe es gerade in Rails 4.1 auch mit Galleria Version 1.3.5 benutzt. Kopieren Sie die Dateien aus dem Hauptordner galleria in die verschiedenen Teile. Beachten Sie, dass ich das klassische/standardmäßige (kostenlose) Theme verwende.

# app/assets/images 
classic-loader.gif 
classic-map.png 

# app/assets/javascripts 
galleria-1.3.5.js 
galleria.classic.js 

# app/assets/stylesheets (rename with .scss extension) 
galleria.classic.css.scss 

Öffnen Sie galleria.classic.js und bearbeiten Sie die Zeile css: '...'css: false (um Zeile 17, wenn Sie den Code nicht verändern) zu sein.

Das war alles, was ich tun musste, um es mit Rails 4 arbeiten zu lassen. Ich spielte herum und legte die Dateien in die Ordner vendor/assets, aber das wurde ziemlich schnell zum Albtraum. Ich fand die obige Lösung am einfachsten/saubersten.

Update: 2016-02-02

ich immer noch das gleiche Setup mit einem Rubin bin mit 2.2.3, Rails 4.2.4, 1.4.2 Galleria Setup.

Stellen Sie sicher, dass Sie in Ihrem galleria.classic.scss Stylesheet die image-url("classic-map.png") Helfer verwenden. Keine Probleme mit diesem aktuellen Setup.

+0

gallerica.classic.css in gallerica.classic.scss oder gallerica.classic.css.scss umbenannt? War es falsch geschrieben? –

+1

@ V-SHY: Nein, nicht vertippt. Wenn Sie die Erweiterung '.scss' verwenden, müssen Sie' .css.scss' nicht verwenden. Ich verwende routinemäßig nur ".scss" -Erweiterungen in einem meiner Rails-Stylesheets, da eine .scss sowohl BEIDE Standard-CSS als auch SASS verarbeiten kann. Beachten Sie, dass CoffeeScript-Assets NICHT folgen. Wenn Sie eine '.js.coffee'-Datei haben, kann sie nur CoffeeScript-Code verarbeiten, NICHT Raw JavaScript. –

+0

@ V-SHY: Außerdem benenne ich 'application.css' immer in' application.scss' um und kontrolliere die Reihenfolge meiner Stylesheets manuell über '@import" sass_variables ";' Anweisungen. Auf diese Weise kommen Sie nicht auf Probleme, bei denen SASS-Variablen nicht definiert sind, bevor sie verwendet werden. –

2

Vielen Dank dieses absolut erstaunlich war und genau das, was ich brauchte (I Ich wünschte, ich hätte das vor dem 18. Jahrhundert gefunden Haare ziehen, um dies zu verdammter Arbeit zu bringen!

Ich werde ein paar weitere Dinge hinzufügen, die hilfreich sein könnten, wem:

1) Ich musste galleria.css.scss.erb ändern, so dass es die Klasse-Lader wie diese interpoliert würde: Hintergrund : url (<% = asset_path "/galleria/classic-loader.gif"%>) (nicht sicher warum, aber die Asset_url hat nicht für mich funktioniert)

2) Related, musste ich auch den Klassiker nehmen -map und loader Bilder und legte sie in App/Assets/Bilder

3) Per Galleria, die Dateien, die ich bewegte, waren die min.js-Dateien, nicht reguläre .js

4) In der Kopfzeile der Ansicht, fügte ich hinzu:

<script src="<%= asset_path "/galleria-1.3.5.min.js" %>" ></script> 
<script src="<%= asset_path "/galleria.flickr.min.js" %>" ></script> 
<script src="<%= asset_path "/galleria.classic.min.js" %>" ></script> 

5) In dem Skript auf jeder Ansicht Galleria zu laden, ich geändert ihre Anweisungen wie solche:

Galleria.loadTheme("<%= asset_path "/galleria.classic.min.js" %>");