Перечисления Java являются на самом деле полными классами, которые могут иметь частного конструктора и методы и т.д., тогда как перечисления C# просто называют целыми числами. Реализация Java IMO намного выше.
Эта страница должна помочь Вам много при изучении c# прибывающий из лагеря Java. (Ссылка указывает на различия о перечислениях (прокрутка / вниз для других вещей)
Вы можете добавить фактическую метку времени для каждого файла изображения, получив время модификации файла следующим образом:
source.gsub!(/url\((['"]*)(.+)(['"]*)\)/) do
open, file, close = $1, $2, $3
css_dir = File.join(RAILS_ROOT,"public/stylesheets")
timestamp = ''
FileUtils.cd(css_dir) do
if file =~ /^\// # absolute path
f = File.new(RAILS_ROOT + "/public" + file)
else # relative path
f = File.new(file)
end
timestamp = f.mtime.to_i.to_s
end
if file =~ /.\.(ico|css|js|gif|jpe?g|png)/
"url(#{open}#{file}?#{timestamp}#{close})"
else
"url(#{open}#{file}#{close})"
end
end
(Возможно, есть более элегантный способ написать это, мои рубиновые отбивные все еще слабы! ) Теперь хакер становится уродливым ... можно подумать, что есть способ, более похожий на Rails.
Я использовал пакетировщик ресурсов , и в итоге я отредактировал метод плагина compress_css
, чтобы решить эту проблему. Я просто использую регулярное выражение для изображений в CSS и вставляю текущую временную метку:
timestamp = Time.now.to_s.gsub(/\D/, '')
source.gsub!(/url\((['"])(.+)(['"])\)/) do
open, file, close = $1, $2, $3
if file =~ /.\.(ico|css|js|gif|jpe?g|png)/
"url(#{open}#{file}?#{timestamp}#{close})"
else
"url(#{open}#{file}#{close})"
end
end
Таким образом, всякий раз, когда я развертываю, сжатые CSS-изображения содержат добавленные временные метки. Недостатком этого метода является то, что каждому изображению не присваивается собственная временная метка, поэтому каждый раз, когда вы развертываете новый CSS, все изображения CSS «просрочены». Лучше, чем ничего, если вы не будете часто развертывать css.
Наилучшим решением кажется использование ERB для генерации ваших таблиц стилей, чтобы вы могли использовать Rails image_ helpers вместо прямых путей к изображениям. Это означает, что избавьтесь от вашего файла public / stylesheets / application.css и создайте app / views / stylesheets / application.css.erb. Вам также нужно будет создать контроллер, включить кеширование и настроить маршрут.
Вот подробности: http://deaddeadgood.com/2009/9/28/far-future-expires-headers-for-css-images-in-rails
Если кто-то наткнется на это, Jammit теперь поддерживает это из коробки. Я использовал Jammit в новом проекте и был невероятно впечатлен!