Здесь есть несколько вопросов, и я буду разбираться с каждым по отдельности.
Почему это не работает
Существуют различия в способе, которым активыдоступ в режимах производства и разработки с включенным дайджестом.В разработке все работает как обычно.Sprockets обслуживает вещи в app / assets с их непереваренными именами файлов.Это работает почти так же, как если бы Sprockets там не было, но помните, что / assets - это точка монтирования (Sprockets - это движок Rails), поэтому все файлы под этим обслуживаются - Sprockets.
В производстве используются имена файлов с дайджестами, поэтому Sprockets ожидает, что эти имена будут запрашиваться вместо оригиналов.Они фактически скрыты за точкой монтирования / assets
Как это исправить
Первое, что нужно обновить - это application.css:
/*
*= require_self
*= require jquery-ui-1.8.14.custom'
*= jquery-ui-1.8.14.custom_redefinition:
*/
и тег ссылки на таблицу стилей:
<%= stylesheet_link_tag 'application' -%>
Это гарантирует, что ваш CSS подается (и компилируется) в один файл.Когда вы запускаете прекомпиляцию, файлы пользовательского интерфейса попадают в каталог / assets из-за ошибки в Rails, поэтому не стоит полагаться на это (это будет исправлено в Rails 3.1.2)
Второе, что вам нужнодля этого нужно переместить ваши изображения (если вы этого еще не сделали) в assets / images.
Третье - добавить расширение .erb к файлам пользовательского интерфейса в папке стилей:
jquery-ui-1.8.14.custom.css.erb
Последнее, что нужно, - изменить все ссылки на изображения в файлах CSS для использования помощника asset_path.Отсюда:
url(images/ui-bg_gloss-wave_35_f6a828_500x100.png)
до этого:
url (<% = asset_path ('ui-bg_gloss-wave_35_f6a828_500x100.png')%>)
Запустите это в режиме разработки в качестве теста - он должен нормально работать.
В рабочем режиме помощник заменяет обычное имя файла на правильное имя с отпечатком, чтобы актив был доступен.
Для производства вещи становятся немного сложнее.Вы должны придерживаться настроек по умолчанию, то есть прекомпилировать все ресурсы в публичный каталог / assets.
Я бы проверил последний раздел направляющих конвейера и убедился, что все вашифайлы конфигурации соответствуют настройкам в примерах.
Самое последнее - убедиться, что у вас есть настройки Capistrano для запуска задания прекомпиляции.Обратитесь к разделу precompile assets в руководстве, чтобы узнать, как его настроить.
Это должно снова помочь.
Вы можете (в качестве альтернативыиспользуйте конвейер для этих изображений) переместите файлы пользовательского интерфейса в каталог / public и получите к ним доступ из CSS.Вам нужно будет изменить все ссылки на изображения.Так как вы все равно должны их изменить, я бы придерживался конвейерного пути.