【发布时间】:2014-03-08 10:26:36
【问题描述】:
我在 Heroku 上运行一个带有自定义 Jquery-ui css 和图像资产的 Rails 4 应用程序。我使用了 rail 的asset:precomile,css/js 文件在 Heroku 上运行良好。我遇到的问题是自定义 jquery-ui 的 css 文件中的背景图像 url。
我知道它们位于 assets/jquery-ui/(orginial-filename)-(rails digest #).(png jpg...),如果我手动将每个文件设置为其确切路径Heroku,但必须有更简单的方法。截至目前,我所有的 css 图像文件路径都以 /assets/(imagefilename) 为前缀。
更新:实际上这不是 jquery-ui-rails gem 和我的自定义 jquery-ui css 之间的冲突。问题与 Sprocket 编译 scss 或 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-icon 宽度:16px 高度:16px 背景图片: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')
image-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_filename).... 这不起作用。
哈哈...没关系,我知道为什么会这样。那是因为预编译器没有加载 vendor/assets/images 文件夹。只需将其包含在数组中。如果没有找到编译图像资产,我猜预编译器会将 image-url 设置为 url(images/default_filename)。
【问题讨论】:
标签: jquery css heroku ruby-on-rails-4 asset-pipeline