52

这是在另一个问题中提出的,但在 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-ui javascript 文件加载得很好,但是 css 文件说:

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

有任何想法吗?

4

8 回答 8

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

最后运行这个命令:

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

享受你的 jQuery UI

于 2011-06-06T23:10:16.100 回答
11

这是一篇关于 Rails 3.1 的资产管道和 jQuery UI 的好文章:JQuery-UI css 和图像,以及 Rails 资产管道

于 2011-12-27T11:37:28.583 回答
8

使用jquery-ui-rails gem(请参阅公告)可能会让您更幸运,它将 jQuery UI JavaScript、样式表和图像打包为您的资产。

于 2012-02-20T12:00:55.923 回答
6

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

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

是的,这意味着图像将驻留在 vendor/assets 中的 stylesheets/ 文件夹中,但它可以工作并且可以快速完成。

于 2011-12-26T04:32:38.560 回答
5

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

宝石文件:

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

应用程序/资产/javascripts/application.js:

...
//= require jqueryui
...

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

...
= require smoothness
...
于 2012-02-06T01:54:02.660 回答
5

如果您使用的是 jquery-ui-rails gem:

应用程序.css

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

application.js

//= require jquery.ui.all
于 2013-01-07T23:51:38.417 回答
2

在我看来,通过将这些库资产排除在 assets/javascripts 和 assets/stylesheets 目录之外可以避免很多混乱,其中 sprockets 等人对应该发生的事情有一些看法。

假设您从 themeroller 下载了一个定制的 jquery-ui zipfile。试试这个:

  1. 将 zip 文件解压缩到资产目录的子目录中,例如

    vendor/assets/jquery-ui-1.8.23.custom
    
  2. 在 application.rb 添加:

    config.assets.paths << Rails.root.join('vendor', 'assets', 'jquery-ui-1.8.23.custom').to_s
    
  3. 在通常的地方添加清单文件:

    供应商/资产/javascripts/jquery-ui.js:

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

    供应商/资产/样式表/jquery-ui.css:

    *= require_tree ../jquery-ui.1.8.23.custom
    
  4. 在 config/environments/production.rb 中,添加(指清单文件名):

    config.assets.precompile += %w(jquery-ui.js jquery-ui.css)
    
  5. 在意见中:

    <%= stylesheet_link_tag 'jquery-ui' %>
    <%= javascript_include_tag 'jquery-ui' %>
    
于 2012-08-24T13:35:10.807 回答
0

如果你使用这个:

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

我相信您可以将整个 shebang 转储到一个目录中并需要 css 文件......它会顺利地重写相关 url。

您只需要安装 gem 并将配置行添加到 application.rb

于 2012-02-28T23:30:00.193 回答