web-dev-qa-db-fra.com

Rails 3.1 et actifs jquery-ui

Cela a été posé dans une autre question, mais aucune des solutions ne semble fonctionner pour moi dans 3.1rc1.

J'essaie d'utiliser les nouveaux éléments d'actif dans Rails 3.1 - J'ai les fichiers:

./vendor/assets/stylesheets/jquery-ui-1.8.13.custom.css
./vendor/assets/javascripts/jquery-ui-1.8.13.custom.min.js

J'ai ensuite ajouté:

//= require jquery-ui to app/assets/javascripts/application.js
*= require jquery-ui to app/assets/stylesheets/application.css

Le fichier javery-ui javascript se charge très bien, mais le fichier css dit:

Sprockets::FileNotFound (couldn't find file 'jquery-ui'
     (in /home/xanview2/xancar/app/assets/stylesheets/application.css):6):

Des idées?

52
Roman Gaufman

Exemple d'une configuration de travail:

    $ cat app/assets/javascripts/application.js

    //= require jquery
    //= require jquery-ui


    $ cat app/assets/stylesheets/application.css

    /*
     *= require vendor
     *
     */


    $ cat vendor/assets/stylesheets/vendor.css

    /*
     *= require_tree ./jquery_ui 
     *
     */

    vendor/assets/ $ tree
     stylesheets
         vendor.css
             jquery_ui
                      jquery-ui-1.8.13.custom.css
                      ...
     images
        jquery_ui
            ui-bg_flat_0_aaaaaa_40x100.png
            ...

Enfin, exécutez cette commande:

    vendor/assets/images $ ln -s jquery_ui/ images

Profitez de votre interface jQuery

63
denysonique

Ceci est un excellent article à lire sur Rails 3.1 pipeline d'actifs et jQuery UI: JQuery-UI css et images, et Rails Asset Pipeline

11
eduludi

Vous pourriez avoir plus de chance avec la gemme jquery-ui-Rails (voir annonce ), qui conditionne pour vous les scripts JavaScripts, les feuilles de style et les images jQuery UI.

8
Jo Liss

Ce sujet revient souvent, et maintenant que beaucoup de temps s'est écoulé, les choses peuvent être différentes.

Dans Rails 3.1.2, j'ai trouvé quelque chose qui fonctionne sans liens symboliques. Suivez les étapes ci-dessus, mais placez les images du thème juste à côté de jquery-ui-xxx. fichier css dans un dossier images /. Cela m'a sauvé pas mal de maux de tête.

Oui, cela signifierait que les images résideraient dans une feuille de style/dossier dans le fournisseur/actifs, mais cela fonctionne et c'est rapide à faire.

6
dmonopoly

Avez-vous essayé d'utiliser la gemme Rails-asset-jqueryui ? Il vend jquery-ui et les thèmes standard (actuellement v1.8.16) et les rend disponibles via le pipeline d'actifs. L'exemple suivant appelle le thème Lissage.

Gemfile:

....
gem 'Rails-asset-jqueryui'
...

app/assets/javascripts/application.js:

...
//= require jqueryui
...

app/assets/stylesheets/application.css:

...
= require smoothness
...
5
Doc Walker

Si vous utilisez le joyau jquery-ui-Rails:

application.css

/*
 *= require jquery.ui.all
 */

application.js

//= require jquery.ui.all
5
mkirk

Il me semble que beaucoup de confusion peut être évitée en gardant ces actifs de bibliothèque hors des répertoires actifs/javascripts et actifs/feuilles de style, où sprockets et al ont quelques opinions sur ce qui devrait se produire.

Supposons que vous ayez téléchargé un fichier zip jquery-ui personnalisé à partir du menu déroulant. Essaye ça:

  1. décompressez le fichier Zip dans un sous-répertoire d'un répertoire d'actifs, quelque chose comme

    vendor/assets/jquery-ui-1.8.23.custom
    
  2. dans application.rb, ajoutez:

    config.assets.paths << Rails.root.join('vendor', 'assets', 'jquery-ui-1.8.23.custom').to_s
    
  3. ajoutez des fichiers manifestes aux endroits habituels:

    fournisseur/actifs/javascripts/jquery-ui.js:

    //= require_tree ../jquery-ui-1.8.23.custom
    

    fournisseur/actifs/feuilles de style/jquery-ui.css:

    *= require_tree ../jquery-ui.1.8.23.custom
    
  4. dans config/environnements/production.rb, ajoutez (en faisant référence aux noms de fichiers manifestes):

    config.assets.precompile += %w(jquery-ui.js jquery-ui.css)
    
  5. en vues:

    <%= stylesheet_link_tag 'jquery-ui' %>
    <%= javascript_include_tag 'jquery-ui' %>
    
2
KenB

si vous utilisez ceci:

https://github.com/carlhoerberg/sprockets-urlrewriter

je crois que vous pouvez simplement vider le Shebang entier dans un répertoire et exiger le fichier css ... il réécrira en douceur les URL relatives.

il vous suffit d'installer la gemme et d'ajouter une ligne de configuration à application.rb

0
fringd