【发布时间】:2011-07-21 02:03:22
【问题描述】:
我正在开发一个 Ruby on Rails 应用程序,但在 /app 的上下文路径下使用 JRuby 在 Jetty 中运行它。
我正在使用 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-23 16:19:54.062:警告:/应用程序:错误: 应用程序初始化失败 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.jetty.servlet.Context.startContext(Context.java:136) 在 org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) 在 org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) 在 org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) 在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 在 org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) 在 org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156) 在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 在 org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152) 在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 在 org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) 在 org.mortbay.jetty.Server.doStart(Server.java:224) 在 org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 在 org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:985) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native 方法) 在 sun.reflect.NativeMethodAccessorImpl.invoke(未知 资源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知 资源) 在 java.lang.reflect.Method.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 炸毁?
【问题讨论】:
-
仅添加
config.action_controller.relative_url_root会阻止应用程序初始化?
标签: ruby-on-rails jetty jruby