0

我在 Rails 3.1 中使用ActiveAdmin。这个 gem 使用的唯一图像(我知道的)是表格标题行中的排序箭头。在开发中,CSS 正确地引用了这些图像:

table.index_table th.sortable a {
    background: url("/assets/active_admin/orderable.png") no-repeat 0 4px;
    padding-left: 13px;
}

在生产中,CSS 没有正确引用这些图像,导致 404:

table.index_table th.sortable a {
    background: url("/images/active_admin/orderable.png") no-repeat 0 4px;
    padding-left: 13px;
}

以下是我的 Gemfile 中的相关内容:

gem 'rails', '3.1.1'

group :assets do
  gem 'sass-rails', '~> 3.1.0'
  gem 'coffee-rails', '~> 3.1.0'
  gem 'uglifier'
end

gem 'activeadmin', :git => 'git://github.com/gregbell/active_admin.git'
4

2 回答 2

0

最终为此向 ActiveAdmin git 存储库提交了一个问题。解决方案(对我而言)是将我的 sass-rails gem 升级到 3.1.4。

gem 'rails', '3.1.1'

group :assets do
  gem 'sass-rails', '~> 3.1.4'
  gem 'coffee-rails', '~> 3.1.0'
  gem 'uglifier'
end

gem 'activeadmin', :git => 'git://github.com/gregbell/active_admin.git'
于 2011-11-21T20:40:19.197 回答
0

您必须使用 image-url 而不是 url。在生产中,Rails 3.1 为您的所有图像设置了一个哈希值。像这样,您可以在部署后轻松使它们过期。这是一个不错的功能,因为浏览器可以像这样更好地缓存资产。您应该使用的代码:

table.index_table th.sortable a {
  background: image-url("active_admin/orderable.png") no-repeat 0 4px;
  padding-left: 13px;
}

Rails 3.1 将数字放入所有资产中,因为这个变量是在 production.rb 中设置的

config.assets.digest = true

您也可以将其设置为 false,但我不建议这样做。

如果您无法触摸 active_admin 的 css,则必须将 active_admin 升级到最新版本并重试。

于 2011-11-02T23:28:13.293 回答