【发布时间】:2014-03-28 23:49:33
【问题描述】:
我有一个应用程序,它有一个控制器,其动作被强制 https 和一个异常使用以下代码:
force_ssl except: :show, if: :ssl_configured?
def ssl_configured?
Rails.logger.debug "ssl configured"
ENV["ENABLE_HTTPS"] == "yes"
end
在其中一个视图中,我将 url 定义为访问 http 链接:
place_url(place.id, protocol: 'http')
当我在本地服务器上运行它时(使用 NGINX/WEBrick),所有操作都被重定向到 HTTPS,除了仍然不安全的 show 操作。
但是,当我部署到 heroku 时,所有操作都会重定向到安全连接,即使指向地方显示操作的链接显示为 http。
我没有在 Heroku 上做任何配置(除了设置环境变量),所以应用在 WEBrick 服务器上运行。
如何确定 Heroku 上忽略异常的原因?按照Heroku docs 中的建议配置独角兽服务器会更好吗?
【问题讨论】:
-
会不会是缓存问题?这通常是我看到的那种重定向的误导性问题。
-
我假设你的意思是浏览器缓存?我很确定不是这样。我已经清除了 Firefox 中缓存的网页内容。我还在返回 ["/app/tmp/cache/assets"] 的控制台上尝试了 Rails.cache.clear (如果这就是你的意思)。两者都没有任何区别。
-
我在 Heroku 上创建了一个新的应用程序实例,它可以正常工作。这显然解决了我的问题,但我仍然对如何进一步调查原始实例感兴趣。
-
感谢@adamk33n3r。后来我发现....特别是
heroku run bash允许ls查看文件,但这些文件是按加载时间计时的。没有内置的文本编辑器,但这个link 注释了一个插件。不过我没试过。 -
@Richbits 我刚试过,效果很好。没有颜色,但可以快速修复。如果你也只是想查看一个文件而不是编辑它,你可以运行
cat。这将打印文件。你甚至可以cat file_name.ext | more并按下回车键和空格键来滚动文件。
标签: ssl heroku ruby-on-rails-4