1

今天我在商业服务器上部署了一个 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 后解决了(我也必须制作 config 文件夹),其中包含以下内容(用户名和密码与本地相同):

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

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

在此服务器上找不到请求的 URL /login。

SO上的其他人在这里遇到了类似的问题,管理员/登录页面无法正常工作,然后才在本地计算机上。这个人得到了安装 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

我希望有人能启发我!

4

1 回答 1

1

好吧,通过在 freenode IRC 上询问#spree 的好人解决了这个问题。通过添加

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

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

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

由于我没有 SSL 证书或支持(最后我确实想要这个,因为它更安全)这在 rails/config/production.log 的服务器上的生产日志中出现 301 错误。

于 2013-10-06T19:13:27.250 回答