在通过Capistrano部署Rails Spree应用程序后,在此服务器上找不到请求的URL /登录

时间:2013-10-05 14:46:21

标签: ruby-on-rails ruby postgresql capistrano spree

今天我在商业服务器上部署了一个Spree Commerce应用程序。我遇到的问题是登录页面无法正常工作,我希望有人可以给我建议。

我对Ruby on Rails很新,只是略微调整了标准的Spree Commerce应用程序。在我的本地机器上一切正常(可以添加产品,登录等)。服务器和我正在运行Ruby 1.9.3和Rails 3.2.14。

将所有内容放入git存储库后,根据托管公司的网站配置deploy.rb文件,并运行“bundle install”,“exec rake assets:precompile”,“cap:deploy:setup”和“ cap:deploy“整个事情已成功部署到服务器。

当您访问该网站时,您首先收到了来自Phusion Passenger的优雅错误消息,该消息表明database.yml丢失了。这是在我将一个database.yml文件发送到服务器上的rails / shared / config之后解决的(我也必须创建配置文件夹),其中包含以下内容(用户名和密码与本地相同):

production:
  adapter: postgresql
  encoding: utf8
  database: [name]
  pool: 5
  timeout: 5000
  username: [username]
  password: [password]
  host: localhost

现在,当我浏览网站时显示索引页面,我可以查看购物卡,并可以搜索产品。不幸的是,当我尝试登录时,我收到以下消息:

The requested URL /login was not found on this server.

SO上的其他人有一个类似的问题here,其中有一个非工作的管理员/登录页面,只有在本地计算机上。这个人得到了安装spree_auth_devise扩展的建议。我确实在我的Gemfile中包含了这个,并且本地登录功能正常,所以这不是我的问题。

/ edit此外,这可能是相关的,当我运行rake db:bootstrap时,我收到以下消息:

-bash-4.1$ rake db:bootstrap
This task will destroy any data in the database. Are you sure you want to 
continue? [y/n] y
rake aborted!
database configuration does not specify adapter

我希望有人能够启发我!

1 个答案:

答案 0 :(得分:1)

问题是通过询问freenode IRC上#spree的好人来解决的。添加

Spree::Config.set(:allow_ssl_in_production => false) 

to config / initializers / spree.rb,提交并推送到git存储库并运行cap:再次部署登录页面正常工作!

我有数据库的标准设置,它在生产模式下使用SSL,而我的网站未设置为使用SSL。简单的解决方法是在生产模式下禁用SSL。

由于我没有SSL证书或支持(最后我当然希望这样,因为它更安全),这在rails / config / production.log上的服务器上的生产日志中出现了301错误。 p>