Jquery Heroku Rails 4资产管道在css文件中的路径是什么

Jquery Heroku Rails 4资产管道在css文件中的路径是什么,jquery,css,heroku,ruby-on-rails-4,asset-pipeline,Jquery,Css,Heroku,Ruby On Rails 4,Asset Pipeline,我在Heroku上运行一个Rails 4应用程序,带有自定义的Jquery ui css和图像资源。我使用了rail的资产:precomile和css/js文件在Heroku上运行良好。我遇到的问题是自定义jquery ui的css文件中的背景图像url 我知道它们位于assets/jqueryui/orginial filename rails digest.png jpg…中,如果我手动将每个文件设置为它们在Heroku上的确切路径,它会起作用,但必须有一种更简单的方法。现在,我所有的css

我在Heroku上运行一个Rails 4应用程序,带有自定义的Jquery ui css和图像资源。我使用了rail的资产:precomile和css/js文件在Heroku上运行良好。我遇到的问题是自定义jquery ui的css文件中的背景图像url

我知道它们位于assets/jqueryui/orginial filename rails digest.png jpg…中,如果我手动将每个文件设置为它们在Heroku上的确切路径,它会起作用,但必须有一种更简单的方法。现在,我所有的css图像文件路径都以/assets/imagefilename作为前缀

更新:实际上,jQueryUIRailsGem和我的自定义jQueryUICSS之间没有冲突。问题与Sprocket如何编译SCS或sass有关

 .ui-icon
   width: 16px
   height: 16px
   background-image: image-url('jquery-ui/ui-icons_222222_256x240.png')

 .ui-widget-content .ui-icon
   background-image: image-url('jquery-ui/ui-icons_222222_256x240.png')

 .ui-widget-header .ui-icon, .ui-state-default .ui-icon
   background-image: image-url('jquery-ui/ui-icons_b83400_256x240.png')

 .ui-state-hover .ui-icon, .ui-state-focus .ui-icon
   background-image: image-url('jquery-ui/ui-icons_ffffff_256x240.png')

 .ui-state-active .ui-icon
   background-image: image-url('jquery-ui/ui-icons_8c291d_256x240.png')

 .ui-state-highlight .ui-icon
   background-image: image-url('jquery-ui/ui-icons_3572ac_256x240.png')

 .ui-state-error .ui-icon, .ui-state-error-text .ui-icon
   background-image: image-url('jquery-ui/ui-icons_fbdb93_256x240.png')
发生在我身上的是。。。所有内容都被编译到application.css/gz中。然而 .ui图标 宽度:16px 高度:16像素 背景图像:image-url'jquery-ui/ui-icons_22222_256x240.png'

 .ui-widget-content .ui-icon
   background-image: image-url('jquery-ui/ui-icons_222222_256x240.png')
图像url被编译为url/assets/。。。。很好。但下面的一切

 .ui-widget-header .ui-icon, .ui-state-default .ui-icon
   background-image: image-url('jquery-ui/ui-icons_b83400_256x240.png')
所有图像url都将转换为url/images/orginial_文件名。。。。这不管用


哈哈。。。没关系,我知道为什么会这样。这是因为预编译器没有加载vendor/assets/images文件夹。只需将其包含在数组中。我猜如果预编译器找不到编译图像资源,它会将图像url设置为urlmages/default\u filename。

使用连接到资源管道的Gems时,基本上有3个选项。 从最容易到最难

选项1:安装gem并使用它,无需定制。 gem文件中的gem“jquery/ui rails” $bundle安装 rake资产:预编译 享受 选项2:手动安装库,不要安装gem。 从他们的站点下载jqueryui。 将其复制到/app/assets/jquery ui rake资产:预编译 享受 选项3:安装gem,然后使用自定义资产覆盖默认值。 警告:Javascript/样式表需要噩梦

`gem文件中的gem'jqueryui-rails`` 捆绑安装 通过在app/assets/stylesheets和app/assets/javascripts中添加资产文件来定制库 首先在/app/assets/stylesheets/application.css中添加适当的requires,其中包括stock jquery ui文件,然后要求自定义文件覆盖默认值。 对javascripts重复上一步。 享受

注释:您可以选择选项2并编辑股票jQuery UI,以满足您的需要,但很多人认为这不纯洁。我想,将干净的jquery ui文件与您的定制分开有很多好处

这适用于所有资产宝石,如引导,等等

别忘了

在CSS文件中,假设它们是SASS,即application.CSS.scss,您可以使用

image-url('jquery-ui/whatever.jpg');
这将转化为

url('/assets/jquery-ui/whatever-<hash>.jpg');

在编译的CSS文档中。你可以将它与背景图像等一起使用。

哈哈。。。没关系,我知道为什么会这样。这是因为预编译器没有加载vendor/assets/images文件夹。只需将其包含在数组中。我猜如果预编译器找不到编译映像资源,它会将映像url设置为urlmages/default\u filename。

谢谢,这是可行的,但出于一些奇怪的原因,它会编译映像路径两次。一次到url'/assets/。。。一旦转到url'/images/。。。。我不知道这是否是因为jQueryUIRails导致的问题gem@Steve007如果安装了jqueryuirailsgem,那么运行rakeassets:precompile基本上将原始jqueryui文件从系统上的gem位置复制到/public/assets/jqueryui。如果在/app/assets/…中也有jquery ui文件。。。rake assets:precompile可能会将这些内容粘贴到/public/images中。