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). Буду также признателен за это!
Спасибо!