Rails:将localhost:3000更改为https://

时间:2017-10-17 09:25:16

标签: ruby-on-rails ruby html5 ruby-on-rails-4 https

我正在开发并使用html5 geolocation应用中的rails 5

function getLocation() {
    if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(setGeoCookie);
    } else {
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}

function setGeoCookie(position) {
    var cookie_val = position.coords.latitude + "|" + position.coords.longitude;
    document.cookie = "lat_lng=" + escape(cookie_val);
}

它与firefox以及除safari以外的所有浏览器一起正常运行。使用safari时,allow pop up不会显示。

我做了一些调查,发现..... safari(与Chrome和Firefox不同)不允许通过HTTP协议访问地理位置 - 只有HTTPS。即使是localhost。

解决方案是在开发中使用其他浏览器或通过HTTPS提供Rails。

有人可以指点我在开发中如何通过HTTPS提供Rails吗?

3 个答案:

答案 0 :(得分:3)

通过https提供Rails的最简单方法是使用ngrok。它只是提供到localhost的安全隧道。非常容易使用

答案 1 :(得分:0)

您也可以使用 cloudflared https://github.com/cloudflare/cloudflared,它是免费的,并且没有 ngrok 必须经常更改域的任何限制。

答案 2 :(得分:-1)

您可以在application.rb

中添加以下行,让您的Rails应用在HTTPS上运行
 config.force_ssl = true

或者正如Nwocha建议你也可以使用ngrok。