我正在使用ssl_requirement
并且自设置以来,我的应用程序的Flash消息正在消失。
我已经稍微修改了插件,因为帐户可以选择将域映射到他们的帐户。在这种情况下,站点的非ssl区域应使用映射域,而ssl区域应使用子域:
def ensure_proper_protocol
return true if ssl_allowed?
if ssl_required? && !request.ssl?
redirect_to "https://#{@account.subdomain}." + APP_CONF[:domain] + request.request_uri
flash.keep
return false
elsif request.ssl? && !ssl_required?
redirect_to "http://#{@account.sub_or_mapped_domain}" + request.request_uri
flash.keep
return false
end
end
应用程序大致分为网站(前端)和管理员(后端)。管理区域的所有使用SSL,因此在AdminController中,我已使用以下内容覆盖ssl_required?
:
protected
def ssl_required?
return false if RAILS_ENV == "test" || RAILS_ENV == "development"
true
end
有趣的是,Flash消息在开发环境中运行良好,我绕过了需要SSL,但在我需要SSL的生产环境中,所有Flash都消失了。
有什么想法吗?
我已经做了一些进一步的测试,并且可以补充一点,这个问题只发生在Mac上的Chrome中。 Windows上的其他Mac浏览器和Chrome正在按预期显示Flash消息。
这可能是Mac上Chrome的错误然后......?