通过jruby,tomcat的sinatra的路径

时间:2011-05-20 16:53:16

标签: tomcat sinatra jruby

在开发Sinatra应用程序以便在瘦身的情况下运行时,路径非常简单。

现在我在tomcat中通过warged war文件启动了,事情发生了变化。根现在是一个更深层次(/warFileName/),相对地址是相对于路由/网址,所以如果我有两个路由获取'dostuff'并获得'subdir / dostuff',则获取任何文件(js, css,images)在两者之间是不同的(第一个我可以做'js/blah.js'并且它将正确地查看public/js,第二个它将在subdir/js中查看并失败)。并且,我不能再做一个根斜杠(/js),因为tomcat按照我之前的说法(/warFileName/subdir/doStuff)将事情推到了一个深层。

假设我不想将/warFileName/硬编码到我的所有image / js / css / etc引用中,而我宁愿不让我的路由器将内容传递给haml,如@root = ".."或{ {1}}取决于我们是否在伪子目录中,是否有一种优雅的方式来处理它?<​​/ p>

1 个答案:

答案 0 :(得分:1)

使用Sinatra URL帮助程序是处理此问题的最佳方法。

<%= url '/path' %>

或者,如果你想在URL路径中评估一些Ruby:

<%= url "/path/#{foo}" %>