Rails 3.1和jquery-ui资产

Rom*_*man 52 assets jquery-ui ruby-on-rails-3.1 asset-pipeline

这是在另一个问题中提出的,但在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
Run Code Online (Sandbox Code Playgroud)

然后我补充说:

//= require jquery-ui to app/assets/javascripts/application.js
*= require jquery-ui to app/assets/stylesheets/application.css
Run Code Online (Sandbox Code Playgroud)

jquery-ui javascript文件加载得很好,但是css文件说:

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

有任何想法吗?

den*_*que 63

工作设置示例:

    $ 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
            ...
Run Code Online (Sandbox Code Playgroud)

最后运行此命令:

    vendor/assets/images $ ln -s jquery_ui/ images
Run Code Online (Sandbox Code Playgroud)

享受您的jQuery UI

  • 只需添加// = require jquery-ui就可以解决它(因为我在Gemfile中有"gem'jquery-rails'"),但是如果有人定制了jquery-ui,你的解决方案将会起作用(至少我是这么认为的). (6认同)
  • 如果这样做,您将需要编辑css并更改图像URL,以便通过管道进行处理. (2认同)

edu*_*udi 11

这是一篇很好的文章来阅读有关Rails 3.1的资产管道和jQuery UI:JQuery-UI css和图像,以及Rails Asset Pipeline


Jo *_*iss 8

jquery-ui-rails gem 可能会更幸运(请参阅声明),它将jQuery UI JavaScripts,样式表和图像打包为资产.


dmo*_*oly 6

这个话题出现了很多,现在已经过了很长时间,事情可能会有所不同.

在Rails 3.1.2中,我发现了一些没有符号链接的东西.按照上述步骤操作,但将主题的图像放在图像/文件夹中的jquery-ui-xxx.css文件旁边.这让我有点头疼.

是的,这意味着图像将驻留在供应商/资产中的样式表/文件夹中,但它可以正常运行.


Doc*_*ker 5

您是否尝试过使用rails-asset-jqueryui gem?它供应商jquery-ui和标准主题(目前为v1.8.16)并通过资产管道提供它们.以下示例调用Smoothness主题.

的Gemfile:

....
gem 'rails-asset-jqueryui'
...
Run Code Online (Sandbox Code Playgroud)

应用程序/资产/ Java脚本/ application.js中:

...
//= require jqueryui
...
Run Code Online (Sandbox Code Playgroud)

应用程序/资产/样式表/ application.css:

...
= require smoothness
...
Run Code Online (Sandbox Code Playgroud)


mki*_*irk 5

如果你正在使用jquery-ui-rails gem:

application.css

/*
 *= require jquery.ui.all
 */
Run Code Online (Sandbox Code Playgroud)

的application.js

//= require jquery.ui.all
Run Code Online (Sandbox Code Playgroud)