什么是设置rails 3 +资产管道+ suburi + apache / passenger的正确方法

时间:2014-08-19 21:57:53

标签: ruby-on-rails deployment asset-pipeline assets

我们正在使用Rails 3.2.17和Apache / Passenger。

最大的问题似乎是正确解决子uris问题。建议因几种不同的机制而有所不同。但是,有关如何为suburis正确配置Rails应用程序的信息分散在技术堆栈的多个层中,很难找到提供一致行为的设置星座。

构造

还有其他几个(来自How to deploy Rails 3.1 app in a subdirectory

    config.ru 中的
  • map '/suburi' 在routes.rb
  • scope '/suburi'
  • RailsBaseUri(如上所述,不是RackBaseUri - 这只是旧​​信息,还是与Rails 3.2.17 / Passenger 3相关?

上下文

我在三种不同的背景下尝试过这些方法:

在我尝试的每一种排列中,不同的东西都有效,不同的东西都失败了。

例如,在一个排列中,资产来自' / assets /...'而应用程序的其余部分来自' / suburi /...'在其他人中,' / suburi / assets'服务,除了sass文件的font-url引用(由我可能添加的rails生成)。那些引用似乎仍然使用' / assets /...'好像在erb助手和sass助手之间没有一致地使用变量设置suburi。

很多次(实际上数不胜数)我们得到了与webrick一起工作的东西,只是让它在乘客部署中失败了。或者我们让它在开发中的Passenger下工作,只是让它在生产中失败。在这个技术堆栈的不同层次上似乎有很多 magic 变量,而且很少有关于如何成功地将所有东西拼接在一起的综合指南。

的解决方案?

我正在寻找上述参考文献中的一系列设置,这些设置在我提供的三种情境下提供了一致的行为。

完美的解决方案将允许所有三个上下文运行完全相同,没有任何损坏(意味着资产正常工作,字体正常工作,来自其他gem和供应商资产的插件正常工作,尤其是在使用标准Rails url交叉引用文件时帮助者,如font-url等。)

适当的解决方案将使Passenger部署的应用程序能够同样正常运行developmentproduction(即我们宁愿不会对我们添加的宝石和/或其他js / css解决方案感到非常惊讶这似乎在开发中工作得很好,不能在生产中工作。

最小化解决方案将使所有这些部分仅在生产中起作用。

了解共识是否在Rails 3中无法实现所需行为也很有用。在这种情况下,我们可能会退出使用资产管道。

0 个答案:

没有答案