Ich hatte das gleiche Problem, und es dauerte eine Weile, bis es funktionierte. Zunächst funktionierte es in der Entwicklungsphase einwandfrei, aber als wir zur Produktion übergingen, schlug Galleria stillschweigend fehl, da die Asset-Dateinamen jetzt "Fingerabdrücke" hatten. Dies scheint auch ein Problem mit jQuery UI Themen, und viele andere solche Skripte sein.
Natürlich könnte man auch einfach zur alten Methode zurückkehren und alles in "public" packen, aber wir möchten den Vorteil haben, dass alle css/js-Dateien automatisch zusammengeführt werden und die Dinge auf die Art und Weise von rails erledigt werden.
So habe ich es zum Laufen gebracht:
vendor/
assets/
images/
classic-loader.gif
classic-map.gif
javascripts/
galleria-1.2.5.js
galleria.classic.js
stylesheets
galleria.classic.css.scss
Benennen Sie Ihr galleria.classic.css
Datei zu galleria.classic.css.scss
. Ersetzen Sie dann die Bildreferenzen, etwa so (ich hatte zwei):
url("classic-loader.gif")
wird image-url("classic-loader.gif")
UPDATE: Es sieht so aus, als ob Sie dies in Rails 3.1.1 nicht tun müssen. Benennen Sie die Datei einfach in .css.scss um und Rails wird die url()-Aufrufe automatisch für Sie vorverarbeiten.
In Ihrem app/assets/javascripts/application.js
Datei, stellen Sie sicher, dass die Zeilen
//= require galleria-1.2.5
//= require galleria.classic
//= require_tree .
Bei Ihnen app/assets/stylesheets/application.css
Datei, stellen Sie sicher, dass die Zeilen
*= require galleria.classic
*= require_tree .
Schließlich scheint Galleria einige ausgefallene Nicht-Standard-CSS-Laden in eingebaut haben. Das hat verhindert, dass Galleria auf unserer Produktionswebsite geladen werden konnte. Da wir das Stylesheet bereits eingebunden haben, wollen wir dieses Verhalten deaktivieren. Öffnen Sie einfach galleria.classic.js
(oder Ihre Galleria-Theme-Javascript-Datei), und ersetzen Sie die Zeile:
css: 'galleria.classic.css',
mit:
css: false,
Dadurch wird Galleria angewiesen, nicht zu versuchen, das Stylesheet zu laden.
Noch eine Sache: Beim Versuch, diese Assets zu kompilieren, bin ich auf ein Problem gestoßen, das offenbar ein Fehler in Rails 3.1.0 . Als ich die rake assets:precompile
erhalte ich Fehler wie:
$ bundle exec rake assets:precompile
rake aborted!
classic-loader.gif isn't precompiled
(in /vendor/assets/stylesheets/galleria.classic.css.scss)
Lange Rede, kurzer Sinn: Sie müssen diese Zeile in config/environments/production.rb
:
config.assets.compile = true
Dies sollte nicht mehr nötig sein, sobald 3.1.1 veröffentlicht ist.