Rails 3.1 и jquery-ui активы

Это было задано в другом вопросе, но ни одно из решений не работает для меня в 3.1rc1.

Я пытаюсь использовать новые активы в rails 3.1 - У меня есть файлы:

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

Затем я добавил:

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

jquery-ji файл javascript загружается просто отлично, но файл css говорит:

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

Любые идеи?

Ответ 1

Пример рабочей настройки:

    $ 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
            ...

Наконец, запустите эту команду:

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

Наслаждайтесь своим пользовательским интерфейсом jQuery

Ответ 3

У вас может быть больше удачи с драгоценным камнем jquery-ui-rails (см. объявление), который упаковывает jQuery UI JavaScripts, таблицы стилей и изображения в качестве активов для вас.

Ответ 4

В этом разделе много говорится, и теперь, когда прошло значительное количество времени, все может быть по-другому.

В Rails 3.1.2 я нашел что-то, что работает без символических ссылок. Выполните действия, описанные выше, но поместите изображения для темы прямо рядом с файлом jquery-ui-xxx.css в папке images/. Это избавило меня от нескольких головных болей.

Да, это будет означать, что изображения будут находиться в таблице стилей/папке в поставщике/активах, но это работает, и это быстро сделать.

Ответ 5

Вы пытались использовать rails-asset-jqueryui gem? Это вендоры jquery-ui и стандартные темы (в настоящее время v1.8.16), и делает их доступными через конвейер активов. Следующий пример вызывает тему Smoothness.

Gemfile:

....
gem 'rails-asset-jqueryui'
...

приложение/активы/JavaScripts/application.js:

...
//= require jqueryui
...

приложение/активы/таблицы стилей /application.css:

...
= require smoothness
...

Ответ 6

Если вы используете jquery-ui-rails gem:

application.css

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

application.js

//= require jquery.ui.all

Ответ 7

Мне кажется, что можно избежать много путаницы, сохранив эти библиотечные активы из активов /javascripts и активов/таблиц стилей, где sprockets и др. имеют некоторые мнения о том, что должно произойти.

Скажите, что вы загрузили настроенный jQuery-ui zipfile из themeroller. Попробуйте следующее:

  • распакуйте zip файл в поддиремент каталога ресурсов, что-то вроде

    vendor/assets/jquery-ui-1.8.23.custom
    
  • в application.rb add:

    config.assets.paths << Rails.root.join('vendor', 'assets', 'jquery-ui-1.8.23.custom').to_s
    
  • добавить файлы манифеста в обычные места:

    поставщика/активы/JavaScripts/JQuery-ui.js:

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

    поставщика/активы/таблицы стилей /JQuery -ui.css:

    *= require_tree ../jquery-ui.1.8.23.custom
    
  • в config/environment/production.rb, добавьте (ссылаясь на имена файлов манифеста):

    config.assets.precompile += %w(jquery-ui.js jquery-ui.css)
    
  • в представлениях:

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

Ответ 8

если вы используете это:

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

Я считаю, что вы можете просто сбросить весь shebang в каталог и потребовать файл css... он будет плавно переписывать относительные URL-адреса.

вам просто нужно установить драгоценный камень и добавить строку конфигурации в application.rb