它不应该检查您是否处于生产模式吗?我们在开发模式下看到了一个重定向到https,这似乎很奇怪。或者说这是插件的正常行为吗?我记得它过去的行为不同。
它不应该检查您是否处于生产模式吗?我们在开发模式下看到了一个重定向到https,这似乎很奇怪。或者说这是插件的正常行为吗?我记得它过去的行为不同。
我猜想他们认为在开发模式下,你应该使用HTTPS(可能是自签名证书)。如果这不是期望的行为,你可以自己特殊处理开发环境中的SSL行为:
class YourController < ApplicationController
ssl_required :update unless Rails.env.development?
end
def ssl_required?
return false if local_request? || RAILS_ENV == 'test' || RAILS_ENV == 'development'
super
end
在开发环境中要求SSL没有太大意义。
您可以使用Rails内置的模拟工具来存根插件的ssl_required?方法。
在应用程序根目录下创建一个文件test/mocks/development/application.rb
require 'controllers/application_controller'
class ApplicationController < ActionController::Base
def ssl_required?
false
end
end
这样在开发环境中就不需要 SSL。
实际上,通过https重定向是Web服务器的责任。在Rails中为每个请求添加额外的请求哈希验证是我的个人意见负担过重。我编写了nginx 配置文件,其中包括以下重写:
rewrite ^(.*) https://$host$1 permanent;