Rails GeoLiteCity GeoIP 在本地开发环境中不起作用
Posted
技术标签:
【中文标题】Rails GeoLiteCity GeoIP 在本地开发环境中不起作用【英文标题】:Rails GeoLiteCity GeoIP Doesn't Work In Local Development Environment 【发布时间】:2014-09-12 13:48:18 【问题描述】:我有来自 MaxMind 的 GeoIP.dat(国家)和 GeoLiteCity.dat(城市)数据。国家数据在我当地的 Rails 开发中运行良好,但是当我尝试查找城市数据时,它返回 null。
但是,当我部署到 Heroku 时,城市数据确实返回了正确的值。知道为什么国家/地区数据在本地发展中起作用而城市数据不起作用吗?
在 Heroku 中工作,而不是在本地:
geoip = GeoIP.new('geoip/GeoLiteCity.dat').city(request.remote_ip)
两者都适用:
geoip = GeoIP.new('geoip/GeoIP.dat').country(request.remote_ip)
【问题讨论】:
【参考方案1】:我的猜测是,Maxmind 出于某种原因将私有 IP 网络输入国家数据库,但 [正确地] 没有输入城市数据库。
您应该编写代码,以便在没有得到结果时将其设置为某个值(如果您在其他地方依赖它)。它会发生(尤其是在开发中)。在我的项目中,我将其设置为公司总部所在的城市。
【讨论】:
是的,我在 if 语句中添加了检查它是否存在,如果存在则获取 geoip 数据,否则跳过它。但是我仍然有一堆“不必要的”提交,因为我必须在 heroku 中测试 :) @TomHammond 你根本不能在本地测试?以上是关于Rails GeoLiteCity GeoIP 在本地开发环境中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
MaxMind 免费 GeoLiteCity.dat 文件大小问题