我对Rails和使用PassengerPhusion相对较新。我在Azure上运行Ubuntu服务器,并且the demo app that Passenger provides working fine。我甚至改变了主页上的文字。
我的问题是:
在我的目录中,该应用程序的文件目录名称为passenger-ruby-rails-demo
,在我进行实验时,我正在将目录名称更改为passenger-ruby-rails-demo-test
,并返回查看fleetpro.cloudapp.net时出现错误消息。
我已经尝试查看文件,试图找出这是如何路由但没有运气。 Rails安装中是否有一个文件告诉Passenger在特定的passenger-ruby-rails-demo
目录中?相当新鲜的问题,但它确实困扰我!
答案 0 :(得分:0)
我不确定如何命名约定对应用程序“passenger-ruby-rails-demo”的根目录名称有效,但我相信该目录的名称是对于运行Rails应用程序非常重要,可能需要对config/application.rb
文件中以Rails应用程序命名的模块名称执行某些操作。
虽然有一个解决方案:使用gem rename
。
将gem rename
添加到Gemfile
并运行bundle install
。
然后在您应用的根目录中,运行以下命令:
rails g rename:app_to New-Name
这将基本上用您的新名称“克隆”应用程序。您可能需要检查以确保之后的所有配置文件都存在,但根据我使用它的经验,这是一件轻而易举的事。您肯定必须将新重命名的应用程序推回到git或Azure。
修改强>
作为示例,我重命名了一个Rails应用程序,以显示在运行命令后您对输出的期望:
答案 1 :(得分:0)
Rails应用程序的名称不是问题,它是您将使用的PassengerAppRoot
开关:
PassengerAppRoot /path/to/your/app
Rails实际上并不关心它放在哪个文件夹中,所以重命名Rails 不会修复你的问题。
重命名Rails只会更改应用程序中的内部类引用(Rails.application.name
之类的内容会对您的应用程序产生非常微妙的影响。)
在Azure服务器中,您需要找到.htaccess
/ httpd.conf
/ nginx.conf
文件,并将PassengerAppRoot
更改为新路径。这应该可以解决问题。