我按照这些说明将我的rails应用程序部署到suburi:
http://www.modrails.com/documentation/Users%20guide%20Apache.html#deploying_rails_to_sub_uri
12月23日,我的申请被部署在一个小库里,工作正常。当我在十二月尝试时。 26我发现像stylesheet_link_tag这样的网址助手不再使用RackBaseURI了。所以我的浏览器没有请求//myapp.com/suburi/app/assets/application.css而是请求//myapp.com/assets/application.css当然这是404.我查看了来自这两个应用程序的所有日志和阿帕奇,并没有看到任何可疑的东西。
重新启动apache使suburi突然重新开始工作。
这是我的vhost.conf https://gist.github.com/4382822
任何人都有任何想法我可能做错了吗?
答案 0 :(得分:1)
所以我终于想通了。问题是,如果您将乘客应用程序设置为使用类似http://local-webservice.localhost/sub/uri/route的子uri,但重新启动后的第一个请求通过根目录http://local-webservice.localhost/route点击应用程序,那么乘客将基本上扔掉您的子-uri配置,直到您重新启动应用程序。
我给了in the passenger google group这个问题的解决方案,但我把它包括在这里,希望能帮助别人。这是我到达那里的答案:
这是由于Phusion Passenger目前唯一识别的方式 应用。它目前只通过应用程序根目录。 假设您在foo.com,bar.com和。上部署了/ webapps / foo baz.com/suburi。 Phusion Passenger会认为他们都是 相同的应用程序,只是在不同的域和子URI下。
这是我们希望在将来的版本中修复的内容。但就目前而言 使它按预期工作,为其设置不同的PassengerAppGroupName 您的子URI部署。例如:
<Location /suburi/app>
PassengerAppGroupName suburi_app
</Location>
答案 1 :(得分:0)
没有什么我能看到你从你所提供的内容中做错了。也许这是乘客的一个错误。
我无法想到任何会使RackBaseURI开始工作的东西,然后在没有apache重启的情况下停止工作,然后在apache重新启动后再次开始工作而没有其他更改 - 除了乘客中的错误。希望它不会再次发生。我自己经常使用RackBaseURI,并没有看到这个问题。
也有可能(也许更有可能)发生了一些奇怪的事情,这不是乘客的错误,但我们没有足够的信息来了解这里。你确定apache在12月23日到26日之间没有重启吗?您确定在任何时候都没有更改任何配置文件(apache或rails)?或预编译您的资产或创建或删除./tmp/cache或其他任何文件? (后者中的任何一个都不会以任何方式破坏事物,但它们至少可以说是相关的。它的作品 - 不起作用而不改变任何文件,无论是什么有点不可思议(无论如何对我来说!)但对于乘客的一个错误。