i18n-js Gem не находит нужные файлы

Итак, у меня есть приложение, которое использует Rails 3.1.3и развертывается под Jruby, Мы разрешаем пользователям импортировать свои собственные темы (например, свой собственный контент CSS), и по этой причине мы не выполняем предварительную компиляцию наших ресурсов в процессе производства (мне известны причины производительности при предварительной компиляции, однако мы не находим производительность ударил так плохо, и это было лучшее решение для нас).

Поскольку мы хотим поддерживать несколько языков, у нас также есть файлы переводов. Rails переводы находятся в config/locales/*.yml и тогда у нас есть переводы, необходимые для наших файлов Javascript. Ранее мы помещали эти переводы в assets/javascripts/config.js файл - но это очень непростительно для будущего. Мы хотели найти решение, которое позволило бы файлам Javascript извлекать из config/locales/*.yml файлы. Мы столкнулись с i18n-js Gem ( i18n-js).

Этот драгоценный камень работает точно так же, как и ожидалось локально. Однако в производстве мы получаем ошибки. Первая проблема была application.js не смог найти i18n.js файл. Для меня это имело смысл, так как мы не выполняли предварительную компиляцию ресурсов, и Gem i18n-js, очевидно, не был бы установлен на производственном сервере, у приложения не было бы доступа к файлу i18n.js. Поэтому я добавил файл вручную в assets/javascripts/ дорожка. Это исправило эту ошибку.

Теперь мы получаем эту ошибку:

2012-10-05[INFO] - Internal Server Error: Sprockets::FileNotFound couldn't find file 'file:/tmp/Jetty_0_0_0_0_application.war____.r5dru7/webapp/WEB-INF/lib/tmp-gems.jar!/gems/activesupport-3.1.3/lib/active_support/locale/en.yml'

    (in /tmp/Jetty_0_0_0_0_application.war____.r5dru7/webapp/WEB-INF/app/assets/javascripts/i18n/translations.js)

Я проверил tmp-gems.jar и gems.jar и файл на самом деле там... Так что меня смущает. Я думаю, что imn-js Gem simple предполагает, что вы предварительно компилируете свои ресурсы, и не предназначен для работы без такового в производственном процессе, когда гемы фактически не установлены на сервере. Тем не менее, мне было интересно, если кто-нибудь может дать некоторые рекомендации по этой мысли? Я прав или есть способ обойти это?

Примечание. Если я предварительно скомпилирую ресурсы, проблем с производством нет. Также обратите внимание, что эта проблема с производством появилась только тогда, когда мы начали использовать этот драгоценный камень, поэтому я знаю, что он связан с использованием этого драгоценного камня и ничего более. Все работало до этого изменения.

Кроме того, если у кого-то есть лучшие предложения для решения языковой проблемы (мы не хотим, чтобы переводы поддерживались в файле JS, И в файле локали YAML). Буду также признателен за это!

Спасибо!

0 ответов

Другие вопросы по тегам