Rails 3: Области применения: Маршрутизация: JS / CSS помощники - PullRequest
0 голосов
/ 02 ноября 2011

Я хочу запустить свое приложение Rails в другой области, чтобы развернуть его в файле war (mydepartment.war), который будет использовать экземпляр Tomcat совместно с другим WAR-приложением Java.Решение , которое я выбрал , заключалось в изменении файла стойки (/config.ru).

map '/mydepartment' do
   run Myapp::Application
end 

Когда я это делаю, мой базовый URL становится http://localhost:3000/mydepartment вместо просто http://localhost:3000. Приложение работает нормально, но не загружаетсяCSS / JS определяется таблицами стилей и помощниками скриптов.

Однако, когда я пытаюсь включить таблицы стилей и Javascript с помощью помощников, таких как

<%= stylesheet_link_tag :all %>
<%= javascript_include_tags :defaults %>

Генерируемые ими URL включают localhost: 3000 / javascripts / jquery.js вместо localhost: 3000 / mydepartment / javascripts / jquery.js .Я на самом деле попытался набрать последний в браузере, и лист загружается нормально.

Как я могу уговорить помощников Rails Javascript / CSS загрузить файлы в новой области без жесткого кодирования?

1 Ответ

1 голос
/ 02 ноября 2011

если вы не на рельсах 3.1:

Добавьте это к вашему config/environments/production.rb (если в производственном режиме):

config.action_controller.asset_path = proc { |path| "/mydepartment#{path}" }

...