У меня возникла проблема с использованием настраиваемой настройки RackFilter и возможность правильной установки или использования рейка: функция предварительной компиляции в процессе производства. Моя среда выглядит следующим образом:Рельсы с RackFilter и активами
jruby 1.7.3
Rails 3.2.12
Отображение стойки фильтр, который я использую следующим образом:
<filter-mapping>
<filter-name>RackFilter</filter-name>
<url-pattern>/r/*</url-pattern>
</filter-mapping>
Чтобы использовать трубопровод активов, без использования PreCompile для развития, я добавляю следующее application.rb
config.assets.prefix = "/r/assets"
Все это прекрасно работает в режиме разработки. Проблемы возникают, когда я пытаюсь запустить приложение в режиме производства. Когда я делаю активы: прекомпилировать моя структура каталогов активов выглядит следующим образом:
/public/r/assets
и когда я пытаюсь запустить приложение, я получаю следующее сообщение об ошибке:
ActionView::Template::Error (application.css isn't precompiled):
, который указывает мне в направлении, приложение не правильно размещения manifest.yml файла, так что я добавить следующие строки в моем production.rb:
config.assets.manifest = Rails.root.join («публичные/г/активы»)
Что я получаю следующее сообщение об ошибке:
[WARN] 404 - GET /r/assets/application-3b09aaf17ec25843ede11b1160ca46ab.css
Я попытался изменить production.rb включать:
config.assets.prefix = "public/r/assets"
, но до сих пор получить
[WARN] 404 - GET /public/r/assets/application-3b09aaf17ec25843ede11b1160ca46ab.css
Таким образом, в этой точке I у меня заканчиваются идеи и могут использовать любые предложения или идеи. Большое спасибо!
, когда вы выполняете 'пакетные функции rake assets: precompile', он не должен создавать каталог в другом каталоге. Я полагаю, что в вашем общедоступном каталоге должно быть «public/assets». Также вы пробовали делать «rake assets: precompile RAILS_ENV = production». Кроме того, для вашего production.rb необходимо установить следующий параметр: 'true' -' config.assets.compile = true'. – David
Благодарим вас за быстрый ответ @David.Я переместил папку с вашими ресурсами, чтобы жить в public/assets вместо public/r/assets. Я также изменил свою конфигурацию в своем production.rb, чтобы использовать config.assets.compile = true, хотя я не хотел менять этот параметр в первую очередь, потому что из того, что я прочитал, это действительно снизит производительность. Теперь я получаю сообщение об ошибке: ActionView :: Template :: Error (Файл для импорта не найден или нечитаем: foundation/foundation-global. Поэтому я прилагаю все усилия, чтобы работать с этим, чтобы определить, будет ли ваше решение работать. Спасибо! –
Кроме того, я считаю, что активы: precompile создает структуру общедоступной/r/assets из-за моего config.assets.prefix = "/ r/assets", что необходимо, так как я использую rackfilter из "/ r/* " –