используя конвейер активов и общедоступные/изображения с jruby и warbler

Я работаю над приложением RoR, которое развертывается как военный файл с помощью warbler. До моего участия несколько изображений в приложении находились в конвейере ресурсов, но моя роль состоит в том, чтобы представить скользкие карты и доморощенные фрагменты карты.

Поскольку плитки занимают много места и они не будут меняться так часто, как приложение, идея заключалась в том, чтобы просто обслуживать их из public/images/tiles. Военный файл для остальной части приложения будет развернут, затем плитки будут распакованы в соответствующий каталог.

Это отлично работает в режиме разработки, но развертывание певчих птиц использует контекстный путь, и плитки получают 404, потому что они находятся в /contextpath/images , а не /images

Я никогда раньше не работал в jruby, а остальная часть команды на этой неделе уехала в отпуск (ха!). Рекомендация Ника Зигера по использованию config.action_controller.asset_host в Warbler: Where are my images разрушает изображения и css которые работают через ресурсы, поэтому я был бы признателен за любые другие предложения, которые позволяют сосуществовать активам и публике.


person Eric Theise    schedule 12.06.2012    source источник


Ответы (1)


В production.rb попробуйте эту строку config.assets.precompile += %w( *.js *.scss *.coffee *.css ), затем запустите jruby -S rake assets:precompile. Он скомпилирует все ваши активы в статические активы, а варблер упакует их соответствующим образом, это должно решить вашу проблему.

Еще одна вещь, которую вы можете проверить, это то, как вы указываете на изображения в представлениях. если вы хотите, чтобы они находились в /image, вы должны указать путь как <%= image_tag "\image" %>. Обратите внимание на завершающий \.

person mimsugara    schedule 24.01.2013
comment
Спасибо, это сработало для меня. Достаточно только config.assets.precompile += %w( *.js *.scss *.coffee *.css ). - person Mukesh Singh Rathaur; 25.03.2013