遇到的一个非常奇葩的错误,记录下。
问题描述
chrome访问页面:
http://lvh.me:3000
查看终端rails s,没有任何报错,也没有任何请求。
以为是浏览器问题,换Safari,依然无法访问,
用 postman 访问api.lvh.me:3000
,也是一样挂掉了。
但是如果将lvh.me换成localhost,则上述问题都不存在了,一切正常。
既然访问localhost:3000正常,难道 lvh.me 没有按照预设被解析成localhost ?
Google到这篇Subdomaining Localhost with Rails 5,试着给chrome换代理,然后就可以访问了。
考虑到Postman里面报错显示有一条 Proxy configured incorrectly。
初步判断是 lvh.me 走了代理导致的,设置lvh.me不走代理即可,考虑到不可能每一个浏览器都做这样的处理,Google了下,可以设置下系统代理。
最终解决方法:
Mac下,打开 system preferences => network => advanced => Proxies, 在下方的Bypass proxy settings for these Hosts & Domains,添加上, *.lvh.me
,点击OK 退出,然后点击 apply 即可。
此时,所有的访问请求都正常了。
如果chrome依然无法显示页面,退出chrome,重新打开chrome即可。
参考
Testing subdomains in Ruby on Rails, with and without lvh.me