12
votes

Où mettre Galleria (cadre de galerie d'images JQuery) dans Rails 3.1 Pipeline d'actifs?

Je suis un peu confus quant à l'endroit où mettre un framework jquery comme Galleria dans rails 3.1 Strong> Nouveau Pipeline d'actifs Strong>?

Je le sais, techniquement, devriez entrer dans / fournisseurs / actifs / javascripts code> mais em>, c'est ce que je comprends que, le dossier galleria code> Avec la jQuery et les thèmes veulent être en root ( / galeria code>) du site en direct afin de fonctionner correctement. p>

En outre, pendant que nous y sommes, où placer le script suivant, il n'apparaîtra donc que sur la page (s) avec une galerie? P>

vendor/
  assets/
    javascripts/
      galleria-1.2.5.js
      galleria-1.2.5.min.js
    galleria/
      themes/
        classic/
          classic-loader.gif
          classic-map.png
          galleria.classic.css
          galleria.classic.js
          galleria.classic.min.js


1 commentaires

Bonnes questions tout autour. Désolé je ne sais pas les réponses à eux.


3 Réponses :


2
votes

J'ai aussi trébuché sur ce problème. Diviser une bibliothèque existante afin qu'il s'adapte à la structure actuelle JavaScripts / stylesheets de style est un peu tracas. Vous pouvez ajouter un chemin supplémentaire à votre application Application.rb pour charger des actifs à partir de, comme celui-ci: xxx

créer un dossier 'libs' sous application / actif, copier la bibliothèque Galleria dans ce dossier et ajoutez ceci à votre fichier de mise en page d'application: xxx

Vous pouvez également regrouper le code Galleria en nécessitant les fichiers JS, mais c'est à vous de décider.


0 commentaires

22
votes

J'ai eu le même problème, et il a fallu un certain temps pour travailler. Initialement, cela fonctionnerait bien au développement, mais lorsque nous avons déménagé à la production, Galleria a échoué silencieusement, en raison des noms de fichiers d'actifs ayant maintenant des "empreintes digitales". Cela semble également être un problème avec les thèmes de l'interface utilisateur JQuery et de nombreux autres scripts de ce type.

Bien sûr, vous pourriez simplement revenir à l'ancienne façon de faire les choses et tout jeter en "public", mais nous aimerions l'avantage de fusionner automatiquement tous les fichiers CSS / JS et faire des choses les rails. p>

Voici comment je l'ai eu fonctionner: P>

config.assets.compile = true


7 commentaires

Je n'aime pas changer de code de la bibliothèque, c'est-à-dire une modification de url (...) à image-url (...) . Je vais essayer de les laisser rester dans le dossier public.


Ni, mais cela semble changer le code de la bibliothèque est le seul moyen d'obtenir les avantages géniaux des rails 3.1 Pipeline d'actifs.


Y a-t-il des avantages géniaux pour les images référencées dans les feuilles de style? Empreintes digitales ...?


Merci, cela m'a probablement sauvé un peu de temps! Cela devrait être la réponse acceptée imo.


@Dudle oui, les images référencées dans les feuilles de style sont empreintes digitales de la même manière que toutes les images du pipeline d'actifs sont


Cela fonctionne pour l'instant, mais je veux vraiment une solution qui n'a rien à voir avec toucher des fichiers de fournisseurs!


@Matthuggins Il vous suffira de renommer les fichiers à .scss.css et divisez-les en différents dossiers. Si vous voulez avoir des rails, combinez votre fournisseur CSS avec votre propre CSS, cela aura toujours besoin d'un peu de shuffling.



3
votes

J'aime la suggestion d'Arjen, bien que je pense que vendeur / actif / libs code> est plus approprié. Voici ma configuration:

dans config / application.rb p> xxx pré>

in app / actif / javascripts / applications.js p>

// = Exiger GALLERIA / GALERIA-1.2.6.MIN.JS CODE> P>

Pour initialiser: P>

Galleria.loadTheme('assets/galleria/themes/classic/galleria.classic.min.js');
$('#gallery').galleria();


2 commentaires

J'ai aussi essayé cette solution, mais ce qui fonctionne dans la production de développement en production. Je peux essayer Loadtheme («Actifs / Gall ...») ou Loadtheme ('/ Actifs / Gall ... ») Ou autre chose, il ne trouvera pas le thème. Tout ce que je reçois, c'est: erreur fatale: thème des actifs / galleria / thèmes / classique / galeria.classic.min.js n'a pas pu charger, vérifier le chemin du thème


@Karstens. Les paramètres que je suggère de s'appliquer à tous les niveaux de production. Essayez de chercher des différences entre votre dev et prod, spécifiquement dans votre configuration de pipeline d'actif.