【问题标题】:How do I add jquery-ui to a Ruby on Rails 3.1 app?如何将 jquery-ui 添加到 Ruby on Rails 3.1 应用程序?
【发布时间】:2011-09-08 09:45:27
【问题描述】:

我已将 //=require jquery-ui 添加到我的 application.js 文件中,这似乎给了我 javascript,但我似乎无法获得要包含的样式表。如果我理解正确,他们应该进入vendor/stylesheets,但我如何让他们被包括在内?

【问题讨论】:

标签: ruby-on-rails jquery-ui


【解决方案1】:

记住//= require jquery.ui.all必须在//= require_tree .之后

因此浪费了我很多时间,因为大多数 Jquery UI 功能都不起作用。

【讨论】:

    【解决方案2】:

    jquery-rails 不再将 jquery-ui 作为其资产的一部分。你应该使用gem 'jquery-ui-rails'

    此外,要了解资产在 Rails 中的形成位置,您可以执行以下操作:

    paths = Rails.application.config.assets.paths
    for path in paths do
      puts "Found in: #{path}" if Dir.glob("#{path}/*").grep(/jquery-ui/).present?
    end
    

    这应该可以很容易地找到资产。

    【讨论】:

      【解决方案3】:

      也许使用jquery-ui-rails gem 更容易(参见announcement)。它将所有内容打包,以便“正常工作”。

      【讨论】:

        【解决方案4】:

        如果您在 Gemfile 上有 jquery-rails,只需执行以下操作:

        //= require jquery-ui
        

        //= require jquery-ui.min
        

        两者都可以正常工作。如果没有,请尝试更新 jquery-rails gem

        不要忘记 css 文件,在这里我关注了关于另一个答案的一些文章:Ruby on Rails 3.1 and jQuery UI images 并通过这种方式使其工作:

        *= require jquery-ui/jquery-ui.css
        

        这是文件的路径:

        vendor/assets/stylesheets/jquery-ui/jquery-ui.css 
        vendor/assets/images/jquery-ui/images/ (your theme images)
        

        【讨论】:

          【解决方案5】:

          如果您在 Gemfile 中包含“jquery-rails”,则 jquery-ui 将被包含在 application.js 中,需要这样做:

          //= 需要 jquery-ui.min

          如果您在控制台中运行:Rails.application.config.assets.paths,您将获得 Rails 查找资产的所有路径。以我为例:

          - /Users/aldo/Satio/Desarrollo/rails/subaquaclub/app/assets/images
          - /Users/aldo/Satio/Desarrollo/rails/subaquaclub/app/assets/javascripts
          - /Users/aldo/Satio/Desarrollo/rails/subaquaclub/app/assets/stylesheets
          - /Users/aldo/Satio/Desarrollo/rails/subaquaclub/vendor/assets/javascripts
          - /Users/aldo/Satio/Desarrollo/rails/subaquaclub/vendor/assets/stylesheets
          - /Users/aldo/.rvm/gems/ruby-1.9.2-p290@subaquaclub31/gems/jquery-rails-1.0.13/vendor/assets/javascripts
          

          看到最后一行了吗?如果你在那里签到,你会发现 jquery-ui 所以你去。

          【讨论】:

          • 太棒了。工作得很好。由于我不需要任何地方的 jQuery UI,我将上面的 require 行添加到我的控制器的 js 文件(Rails 3.1 例如projects.js.coffee)
          【解决方案6】:

          如 epochwolf 在 cmets 中指出的那样,denysonique 在这个问题上有答案。

          Rails 3.1 and jquery-ui assets

          【讨论】:

            【解决方案7】:

            您可以使用 google CDN 在应用的 head 部分添加 css 主题。只需在 %head 部分下添加这个 application.html.haml(或翻译成 erb 的相同内容)。

            CSS 主题

            %link{:href => "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.8/themes/ui-lightness/jquery-ui.css", :rel => "stylesheet", :type => "text/css"}
            

            如果你想缩小 jquery-ui。

            %script{:src => "http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.8/jquery-ui.min.js"}
            

            【讨论】:

            • 是的,这是一个选项,但我想知道如何包含来自供应商/资产/样式表的文件,如果这确实是它的预期方式。
            • 下载 jqeury-ui.css 到 public/stylesheets/ 做 stylesheet_link_tag("jquery-ui") 也可以放到其他目录,改路径即可。
            • 是的,它也可以,但是不能像js一样合并到application.css中吗?我是 Rails 新手,请原谅我的无知。
            • 您还可以使用 :all 作为源包含样式表目录中的所有样式: stylesheet_link_tag :all
            • 我试过了,但是 vendor/assets/stylesheets 中的文件似乎没有包含在内。
            【解决方案8】:

            引用the jquery-rails manual:

            为了使用 jQuery UI 的主题部分,您还需要提供自己的主题 CSS。有关详细信息,请参阅 jqueryui.com。

            因此,您必须自己包含或设置它们的样式!只需在页面标题中包含主题的.css。在 Rails 3 中,您将 css 放入 public/stylesheets,不知道 Rails 3.1。

            【讨论】:

              猜你喜欢
              • 2015-11-11
              • 2011-08-28
              • 1970-01-01
              • 2011-11-11
              • 1970-01-01
              • 2015-10-29
              • 2015-03-19
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多