Ruby on rails 找不到jquery ui资产。如何将rails管道中的资产合并到jQueryUICSS中?

Ruby on rails 找不到jquery ui资产。如何将rails管道中的资产合并到jQueryUICSS中?,ruby-on-rails,ruby,jquery-ui,asset-pipeline,Ruby On Rails,Ruby,Jquery Ui,Asset Pipeline,我注意到,我们在本地收到了关于7个不同jquery ui图像的错误,例如,ActionController::RoutingError(没有路由匹配[GET]”/public/ui-bg\u highlight-soft\u 100\ueeeeee\u 1x100.png”) 这些资产实际上存在于jQueryUI文件结构中 我发现,将jquery ui框架css本身中使用的url从“url(/images/ui-bg\u highlight-soft\u 100\ueeeeee\u 1x100.

我注意到,我们在本地收到了关于7个不同jquery ui图像的错误,例如,
ActionController::RoutingError(没有路由匹配[GET]”/public/ui-bg\u highlight-soft\u 100\ueeeeee\u 1x100.png”)

这些资产实际上存在于jQueryUI文件结构中

我发现,将jquery ui框架css本身中使用的url从“
url(/images/ui-bg\u highlight-soft\u 100\ueeeeee\u 1x100.png
”更改为“
url(/assets/ui-bg\u highlight-soft\u 100\ueeeeeeee\u 1x100.png
”或“
url(ui-bg\u highlight-soft\u 100\eeee\u 1x100.png
”可以消除错误(虽然我还必须在本地执行一个
rakeassets:precompile
),但这似乎是一个不好的方法,不是正确的做法


解决这些错误的正确方法是什么?

首先,我强烈建议使用jquery ui rails gem轻松地将jquery ui滚动到资产管道中

在您的文件中:

group :assets do
  gem 'jquery-ui-rails' # jquery ui
end
在你的app/assets/stylesheets/application.css中:

*= require jquery.ui.all
请注意,您只能要求使用jquery ui的部分,如progressbar或datepicker,ala
jquery.ui.progressbar

在app/assets/javascripts/application.js中:

//= require jquery.ui.all
现在运行
bundle install
,瞧!设置好了!

最终结果是:

  • 删除我的本地版本
  • 将这些项添加到jquery js和css清单文件中
  • 使用jquery ui rails gems

观察在浏览器中找不到404的路径,然后确保在Rails应用程序中,query ui主题的/images目录已移动或链接到该路径

示例

我的404经验是:

http://localhost:3000/assets/images/ui-icons_ffffff_256x240.png
我的jquery ui主题目录位于/vendor中,因此图像的实际路径是:

RAILS_ROOT/vendor/assets/stylesheets/ui-lightness/images
因此,要修复404,请将一个符号链接放到预期的目录:

% cd vendor/assets/stylesheets
% ln -s ui-lightness/images images

现在,该URL为图像提供服务。

这可能会对rails和jquery ui的哪个版本有所帮助?这看起来很好,但不起作用:(我还用正确的文件名/位置更新了这个答案(gem'jquery ui rails'添加项被列为routes.rb,但很明显它应该是Gemfile.rb,对吗?)是的,你完全正确,应该将gem添加到gem文件中。你运行bundle安装了吗?是的,我尝试按照详细说明重新应用所有内容,但仍然得到
ActionController::RoutingError(没有路由匹配[get]“/images/ui-bg\u highlight-so ft\u 100_eeeeee\u 1x100.png”):