我正在使用rails 4.2.2
,在Heroku上部署到生产并使用免费级别的Cloudflare for ssl。在我的production.rb文件中,我已经设置了
config.force_ssl = true
如果我没有以用户身份登录,那么ssl正常工作,我在浏览器网址栏中看到挂锁,我看到所有未签名的页面。但是,一旦我登录该站点,挂锁就会在所有已登录的页面上消失。当我登录并选择其他登录页面时,挂锁会在页面加载时暂时显示,但在加载完成后会消失。所有这些都发生在Chrome和Safari上。我没有使用Devise。
导致这种情况的原因是什么?
答案 0 :(得分:1)
答案 1 :(得分:1)
感谢Cloudflare的支持团队,我能够解决这个问题。
已登录的用户可以使用gravatar,但gravatar_image_tag未与安全设置一起使用。这意味着图像是使用http而不是https传输的。这可以通过查看开发人员控制台来看到,该控制台显示错误,指示页面显示混合的http和https。为了解决这个问题,我刚刚使用了gravatar_image_tag的安全设置。
答案 2 :(得分:0)
在我的情况下,页面访问一些安全中的断言(例如:AWS S3中的图像)。 Chrome Developer Console显示该页面是混合安全的。将S3图像链接从http更改为https使ssl正常工作。