我似乎无法扭转我在开发机器上创建的问题。幸运的是,那是在一个保存了一些快照的 VM 中,所以我能够返回到较早的快照并以最简单的形式准确地重现问题。而且,通过回到较早的快照并且不重复错误,我已经解决了这个问题,但是我无法直接撤消更改的事实表明存在一些错误,或者我不明白某些事情我想要的关键。
所以这是场景:
1)我的 Rails 应用程序工作正常。我在 apache 上,这是一个完全最新的 Ubuntu 11.04,带有用于数据库的 postgresql。可能相关的三件事(a,b,c):
a) 它有这个 GEM 文件:
source 'https://rubygems.org'
gem 'rails', '3.2.6'
gem 'bootstrap-sass', '2.0.0'
gem 'pg', '0.12.2'
gem 'bcrypt-ruby', '3.0.1'
gem 'jquery-rails', '2.0.0'
group :development, :test do
gem 'rspec-rails', '2.10.0'
gem 'guard-rspec', '0.5.5'
end
gem 'annotate', '~> 2.4.1.beta', group: :development
group :test do
gem 'rspec-rails', '2.10.0'
gem 'capybara', '1.1.2'
gem 'rb-inotify', '0.8.8'
gem 'libnotify', '0.5.9'
gem 'guard-spork', '0.3.2'
gem 'spork', '0.9.0'
gem 'factory_girl_rails', '1.4.0'
end
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '3.2.4'
gem 'coffee-rails', '3.2.2'
gem 'uglifier', '1.2.3'
end
b)它在 /etc/apache2/sites-available/sample_app 中有这个文件(仅供参考,是的,我正在通过http://ruby.railstutorial.org/ruby-on-rails-tutorial-book上的教程虽然使用 apache和postgresql)
<VirtualHost *:80>
ServerName localhost
ServerAlias localhost
RailsEnv development
DocumentRoot /home/USER/railsProjects/sample_app/public
</VirtualHost>
这个虚拟主机是唯一启用的站点。
c)它在我的rails项目中没有注释这条线
config.force_ssl = true
注意:我没有做任何特别的事情来配置 apache 以使用 SSL。
2) 在 /etc/apache2/sites-available/sample_app 文件中,将行从:
RailsEnv development
至:
RailsEnv production
保存,然后从命令行重新启动 apache:
sudo service apache2 restart
然后在浏览器中访问 localhost。就我而言,它不起作用。很好——解决这个问题不是我的问题。我的问题是,我该如何扭转这种变化。
3) 显而易见的答案是试试这个:回到 /etc/apache2/sites-available/sample_app 文件并从以下位置更改行:
RailsEnv production
回到:
RailsEnv development
保存然后重新启动apache。
不幸的是,这不起作用。在这一点上,我的系统似乎处于无法修复的状态。每次去
http://localhost
我被转发到
https://localhost
我已经多次重现了这种行为,我在 /etc/ 或我的 railsproject 中的任何文件之间找不到任何更改,在我从未进行过更改的工作系统和我将环境更改为生产的非工作系统之间然后改回来。
我希望真正了解这些东西的人可以帮助新手解决这个问题。我在哪里可以删除导致 http: 转发到 https 的设置?