MacOS Sierra - 使用Hugo时未找到localhost(与Apache无关)


3

请注意,这与Apache无关,我不是在寻找以Apache为中心的答案。

我正在使用Hugo静态站点生成器创建站点并尝试在运行Sierra的MacBook上进行测试。

我能够启动服务器

hugo server -Dw

服务器在localhost:1313上启动,但是当我尝试访问该URL时,我得到404. 127.0.0.1:1313可以工作,但是当所有链接尝试解析回localhost时,所有链接都会失败。

我能够通过在我的路由器(foo.home)上启用域名来访问,然后我可以使用localhost.foo.home:1313打开主页面,但所有Hugo链接仍尝试使用localhost:1313。

那么,有两个问题:

  1. 我可以将Hugo的行为更改为使用127.0.0.1吗?我试过改变 config.toml中的baseURL到localhost,127.0.0.1和foo.home 域名,但似乎没有做任何事情。
  2. 或者,我可以更改/ etc / hosts文件以解析localhost吗?

现在/ etc / hosts有四个条目 - 我想知道我是否可以为127.0.0.1 localhost添加另一个条目,但是有一个关于不进行更改的警告,因为它会破坏loopback接口的配置。

127.0.0.1       localhostw
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0     localhost

1
localhost 只是IP的主机名 127.0.0.1;他们是一样的东西。我看到的问题是你的第一个链接 etc/hosts 文件 - 你有一个尾随 w。它应该是 localhost
Allan

谢谢 - 我认为这是由于某种原因由macos添加的,这就是为什么有没有改变它的说明。我应该尝试从localhostw重命名为localhost吗?我只是不想炸毁我的启动过程。
lonstar

1
继续改变它。它不会炸毁你的系统,它只会给你另一台主机的错误地址。
Allan

这样做了。谢谢你的帮助。希望这能帮助有同样问题的其他人。如果您发布“检查/ etc / hosts文件并确保存在127.0.0.1 localhost”作为答案,我会接受它。
lonstar

1
@lonstar它看起来像我还有问题。 “localhost”解析为本地IP版本4地址(127.0.0.1) 本地IP版本6地址(:: 1和fe80 :: 1%lo0)。即使有拼写错误(“localhostw”),IPv6地址仍应有效。除非,即 hugo 由于某种原因无法监听IPv6连接;如果是这种情况,您仍然可以通过localhost连接。尝试 netstat -an | grep '[.]80 ' 并查看它是否列出了IPv6地址和IPv4的侦听器。
Gordon Davisson

Answers:


3

此错误的关键如下:

127.0.0.1:1313有效,但是当所有链接尝试解析回localhost时,所有链接都会失败。

这给了提示 - 通过IP工作但不通过主机名访问。谢天谢地, /etc/hosts 文件也包括在内进行检查。在其中我们看到以下行(第1行):

127.0.0.1       localhostw

主机名末尾的尾部“w” localhost 会导致错误。有效, localhost 没有定义,但是 localhostw 是。

删除“w”将解决问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.