0

我按照这些说明将我的 rails 应用程序部署到 suburi:

http://www.modrails.com/documentation/Users%20guide%20Apache.html#deploying_rails_to_sub_uri

12 月 23 日,我的应用程序部署在 suburi 下并且运行良好。当我在 12 月尝试时。26 我注意到像 stylesheet_link_tag 这样的 url 助手不再使用 RackBaseURI。因此,我的浏览器没有请求 //myapp.com/suburi/app/assets/application.css,而是请求 //myapp.com/assets/application.css 当然这是 404。我查看了两个应用程序的所有日志和阿帕奇,并没有看到任何可疑的东西。

重新启动 apache 使 suburi 突然重新开始工作。

这是我的 vhost.conf https://gist.github.com/4382822

有人知道我可能做错了什么吗?

4

2 回答 2

1

所以我终于想通了。问题是,如果您有一个乘客应用程序设置为使用类似http://local-webservice.localhost/sub/uri/route的子 uri ,但重启后的第一个请求会通过根目录(如http:// /local-webservice.localhost/route然后乘客基本上会丢弃您的 sub-uri 配置,直到您重新启动应用程序。

这个问题的解决方案是在乘客谷歌小组中给我的,但我把它包括在这里,希望它可以帮助其他人。这是我得到的答案:

这是由于 Phusion Passenger 目前唯一识别应用程序的方式。它目前仅通过应用程序根来执行此操作。假设您在 foo.com、bar.com 和 baz.com/suburi 上部署了 /webapps/foo。Phusion Passenger 会将它们都识别为同一个应用程序,只是在不同的域和子 URI 下。

这是我们希望在未来版本中修复的问题。但是现在,要使其按预期工作,请为您的子 URI 部署设置不同的 PassengerAppGroupName。例如:

<Location /suburi/app> 
  PassengerAppGroupName suburi_app 
</Location> 
于 2013-01-14T20:01:22.183 回答
0

从您提供的内容中,我看不出您做错了什么。也许这是Passenger中的一个错误。

我想不出任何可以使 RackBaseURI 开始工作,然后在没有重新启动 apache 的情况下停止工作,然后在没有其他更改的情况下重新启动 apache 后重新开始工作的事情——除了乘客中的错误。希望它不会再发生。我自己经常使用 RackBaseURI,但没有看到这个问题。

也有可能(也许更有可能)发生了一些奇怪的事情,这不是乘客的错误,但我们没有足够的信息来知道。你确定 apache 没有在 12 月 23 日到 26 日之间重启?您确定您在任何时候都没有更改任何配置文件(apache 或 rails)吗?或预编译您的资产或在 ./tmp/cache 中创建或删除文件或其他任何内容?(后者显然不会以任何方式破坏事物,但它们至少可以想象是相关的。这是作品 - 不作品 - 没有对任何文件进行任何更改,这有点不可思议(无论如何对我来说!)但是对于乘客中的错误。

于 2013-01-05T00:36:14.813 回答