Я занимаюсь разработкой приложения Ruby on Rails, но запускаю его с JRuby в Jetty по контекстному пути /app
.
Я использую Rails 3.0.5, JRuby 1.6.0 и Jetty 6.1.22
При развертывании в Jetty относительные URL-адреса статических ресурсов равны /stylesheets/*
и /javascripts/*
, а не /app/stylesheets/*
и /app/javascripts/*
и, следовательно, нарушают стилизацию и функциональность на стороне клиента.
Я попытался добавить config.action_controller.relative_url_root = '/app'
к config/environments/production.rb
, но Jetty не может инициализировать приложение.
Трассировка стека от Jetty выглядит следующим образом:
2011-03-2316: 19: 54.062: WARN: / app: Ошибка: не удалось инициализировать приложение org.jruby.rack.RackInitializationException: не удалось создать экземпляр общего приложения в org.jruby.rack.SharedRackApplicationFactory.init (SharedRackApplicationFactory.java:39) в org.jruby.rack.RackServletContextListener.contextInitialized (RackServletContextListener.java:44) в org.mortbay.jetty.handler.ContextHandler.startContext (ContextHandler.java:548) в org.mortbay.ontet.tetext (Context.java:136) на org.mortbay.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1250) на org.mortbay.jetty.handler.ContextHandler.doStart (ContextHandler.java:517) на org.mortb.jetty.webapp.WebAppContext.doStart (WebAppContext.java:467) в org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:50) в org.mortbay.jetty.handler.HandlerCollection.152.jpg) в org.mortbay.jetty.handler.ContextHandlerCollection.doStart (ContextHandlerCollection.java:156) в org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:50) в org.mortbay.jetty.handler.dolerHandlerCollection.java:152) в org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:50) в org.mortbay.jetty.handler.HandlerWrapper.doStart (HandlerWrapper.java:130) в org.mortbayer.jet..doStart (Server.java:224) в org.mortbay.component.AbstractLifeCycle.start (AbstractLifeCycle.java:50) в org.mortbay.xml.XmlConfiguration.main (XmlConfig)uration.java:985) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (неизвестный источник) в sun.reflect.DelegatingMethodAccessorImpl.invoke (неизвестный источник в jj).invoke (неизвестный источник) в org.mortbay.start.Main.invokeMain (Main.java:194) в org.mortbay.start.Main.start (Main.java:534) в org.mortbay.start.Main.start(Main.java:441) на org.mortbay.start.Main.main (Main.java:119)
Как я могу настроить этот параметр и не дать Jetty взорваться при инициализации приложения?