我有一个本地运行的Web服务器,它映射到MacOSX盒子上的project.name.localhost:3011。我的/ etc / hosts定义了:
127.0.0.1 project.name.localhost
我需要在Chrome和Firefox中浏览此服务器。当我访问http://project.name.localhost:3011/时,Chrome效果很好。 Firefox提供“无法连接”连接错误。我可以在本地服务器的控制台中看到,当我从FF尝试时,甚至没有连接尝试发送到服务器。
这是在FF版本59.0.2(64位)上。 FF对像这样的公共互联网站点和谷歌没有问题。
我已经尝试过这里建议的所有步骤: https://support.mozilla.org/en-US/kb/firefox-cant-load-websites-other-browsers-can 总之,这些步骤是:
network.dns.disableIPv6
about:config
设为 true
network.dns.disablePrefetch
about:config
设为 true
还尝试禁用此处所述的HSTS: https://support.mozilla.org/en-US/questions/1204380
ping project.name.localhost
也可以。没有本地DNS问题。
http://127.0.0.1:3011/给出了与使用主机名完全相同的错误。但是,我需要通过主机名访问服务器。它不是也不应该被配置为响应直接IP。
如何让FF通过主机名点击我的本地Web服务器?
编辑:两个同事在设置他们的系统时经历了他们所描述的相同问题,但他们都说“一天或两天后它就会自行消失”。我的问题持续数周并重新启动。来自请求的控制台输出:
GET http://global.appen.localhost:3011/invoice_groups
Request headers (398 B)
Accept
text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8
Accept-Encoding
gzip, deflate
Accept-Language
en-US,en;q=0.5
Cache-Control
no-cache
Connection
keep-alive
Host
global.appen.localhost:3011
Pragma
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel …) Gecko/20100101 Firefox/59.0
网络时间:
Blocked: → 1 ms
DNS resolution: → 1 ms
答案 0 :(得分:10)
编辑:不起作用[似乎内部使用此功能停止在Firefox中工作]
在Firefox类型中 关于:配置
在其中搜索本地主机并在下面标记为真
network.dns.native-is-localhost
答案 1 :(得分:2)
Firefox对“ .localhost”进行了特殊处理,这似乎引起了问题。当我将主机文件从project.name.localhost
更改为project.name.devl
时,它开始工作。
答案 2 :(得分:1)
您可能只需要清除FF浏览器缓存。有时您必须清除所有内容,而不仅仅是您正在处理的网站。你做过这个吗?旧的缓存可能会产生非常神秘的问题。
答案 3 :(得分:0)
您也可以尝试从命令行运行:
nbtstat -R
这将刷新你的Windows名称缓存。
我并不认为这会解决这个问题,因为这个名称可以在一个浏览器中运行,而不是FF。
确定,当您清除FF缓存时,请转到选项 - >隐私与安全安全。从那里你想要清除"缓存的Web内容"和"网站数据"。你得到了这两个吗?
如果仍然无法工作,你可能会发现一个FF错误,尽管这似乎不太可能。指定主机和端口号是非常标准的,在这种情况下,FF似乎不太可能无法做到这一点。
您也可以解决问题。只是在没有端口号的情况下呼叫主机会发生什么?您可能希望让服务器在端口80上提供测试页面,并查看该部分呼叫是否正常工作。这至少会将其缩小到端口号。或者,也许缩小到它没有正确调用服务器的事实。
答案 4 :(得分:0)
尝试创建另一个端点,例如localhost:3011 / test,看看是否有效,firefox可以检查你的url,你的后缀或前缀可能会考虑不完整并自动添加一些前缀,在位置栏类型about:config then搜索:fixup并双击browser.fixup.alternate.enabled使其变为false。看看是否有帮助。
答案 5 :(得分:0)
这与您在机器中的配置无关。当您访问localhost的子域并且Chrome不访问时,Firefox会添加“www”前缀。
答案 6 :(得分:0)
我会建议一些事情:
在hosts文件中,添加名称www.project.name.localhost,以防Firefox向其添加www。它看起来像这样:
127.0.0.1 project.name.localhost www.project.name.localhost
使用HTTP标头分析器(如Fiddler)监控Firefox和Chrome在您使用http://project.name.localhost:3011/时所做的连接。这将告诉您解决IP是否存在问题,或者是否与Chrome提出的请求存在差异。
答案 7 :(得分:0)
我在Firefox上遇到了问题,它打开了localhost:1234
,但是无法连接和加载static.localhost:1234
中的任何资源。
这仅在指定端口的子域上发生。因此,static.localhost
工作正常。
添加
127.0.0.1 static.localhost
到hosts
文件(位于C:\Windows\System32\drivers\etc
中)为我解决了这个问题。