English 中文(简体)
Rails 3.1和jquery ui资产
原标题:Rails 3.1 and jquery-ui assets

这是在另一个问题中提出的,但在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):

有什么想法吗?

最佳回答

工作设置示例:

    $ 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

问题回答

这是一篇关于Rails3.1的资产管道和jQueryUI:JQuery UI css和图像,以及Rails资产管道

使用jquery ui railsgem(请参阅公告),它将jQuery UI JavaScripts、样式表和图像打包为您的资产。

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

In Rails 3.1.2, I found something that works without symbolic links. Follow the steps above, but put the images for the theme right next to the jquery-ui-xxx.css file in an images/ folder. This saved me quite a few headaches.

是的,这意味着图像将位于供应商/资产中的样式表/文件夹中,但它很有效,而且很快就能完成。

您是否尝试过使用rails asset jqueryuigem?它提供jqueryui和标准主题(目前为v1.8.16),并通过资产管道提供这些主题。以下示例调用了Smoothness主题。

Gemfile:

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

app/assets/javascripts/application.js:

...
//= require jqueryui
...

app/assets/stylesheets/application.css:

...
= require smoothness
...

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

应用程序.css

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

application.js

//= require jquery.ui.all

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

假设您已经从themeroler下载了一个定制的jquery-ui-zip文件。试试这个:

  1. 将zip文件解压缩到assets-dir的子目录中,类似于

    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. 在常用位置添加清单文件:

    vendor/assets/javascripts/jquery-ui.js:

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

    vendor/assets/stylesheets/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  %>
    

如果您使用此:

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

我相信你可以把整个shebang转储到一个目录中,并需要css文件。。。它将平滑地重写相关url。

您只需要安装gem并在application.rb中添加一行配置即可





相关问题
Using jQuery Plugins with Wordpress

Having a bit of trouble using jQuery plugins (Superfish, jQuery UI, etc) using Wordpress. Everything works fine in my plain non-Wordpress site, but Wordpress seems to conflict with JQuery. There must ...

Jquery TableSorter 2.0 - Revert Sort order

All, I am using the JQuery TableSorter Plugin. The table sorts fine for the selected columns. Consider that when the page loads, there is no sorting taking place. Now, if the table is sorted by one ...

jquery ui dialog opens only once

I have a button that opens a dialog when clicked. The dialog displays a div that was hidden After I close the dialog by clicking the X icon, the dialog can t be opened again.

热门标签