如何在本地主机(任何端口)上运行 html 文件

Posted

技术标签:

【中文标题】如何在本地主机(任何端口)上运行 html 文件【英文标题】:How to run a html file on localhost (any port) 【发布时间】:2019-11-05 03:02:49 【问题描述】:

我正在使用 html、CSS 和 js 以及用于服务器端的 java 创建一个网站。我需要在本地主机上运行它。

额外信息:我正在使用 mac os x 11 (el capitan)

我已经尝试过 python 和 node.js 但它与 java 冲突

所以我需要一种不会与 java 冲突的技术,并且可以帮助我在 mac 上进行 localhost

【问题讨论】:

【参考方案1】:

IIRC macOS 预装了 php,并且 PHP 具有内置的网络服务器,足以提供静态内容。

所以,打开 Terminal.app 然后:

cd your/project/dir
php -S localhost:8080

之后,您可以导航到http://localhost:8080/ 并在浏览器中查看您的站点(假设您的项目中有index.html,否则会出现“未找到”消息)。

当然,还有更高级和/或更少面向终端的方法,但由于您已经在修改 python 和 node,所以另一个终端命令应该不是问题。

顺便说一句,您可能希望不时查看该终端窗口,因为它会输出从服务器请求的内容的漂亮日志。如果您想检查无效引用、404 错误等,这很好。这是一个示例输出:

$ php -S localhost:8080
PHP 7.3.6 Development Server started at Sat Jun 22 20:00:28 2019
Listening on http://localhost:8080
Document root is /private/tmp/test
Press Ctrl-C to quit.
[Sat Jun 22 20:00:32 2019] [::1]:51640 [200]: /
[Sat Jun 22 20:00:32 2019] [::1]:51641 [200]: /style.css
[Sat Jun 22 20:02:35 2019] [::1]:51670 [404]: /oops.html - No such file or directory

如您所见,根文件夹(/,在我的例子中被翻译为index.html)和样式表(style.css)被请求并成功交付(代码为200)。但是不存在的文件oops.html 导致错误(代码为404)。

【讨论】:

非常感谢,但它不会与 java 冲突吗? 我认为它可能发生冲突的唯一方法是端口号。如果您的 Java 应用程序碰巧使用端口 8080,则只需提供 1025...65535 范围内的任何其他数字即可。然后在 php 命令和浏览器 URL 中使用该数字。 不,我的意思是我可以同时使用两种后端语言 哦,你知道吗,我刚刚意识到你有 java 后端,现在我不明白为什么你需要 python、node 或 php 来为你的网站提供服务——你已经有了 java。您能否更具体地说明“冲突”的含义?使用 python 或 node 尝试时是否有任何特定的错误消息? 所以你的意思是我应该使用java来使用localhost?【参考方案2】:

您可以使用caddy

安装:brew install caddy

要从当前工作目录提供静态文件,请运行:

caddy file-server --browse --listen :2015

Caddy 的默认端口是 2015,所以打开浏览器到http://localhost:2015。

【讨论】:

当前版本似乎不再如此。我需要使用caddy file-server --browse --listen :2015。现在只需运行caddy 即可显示帮助文本。

以上是关于如何在本地主机(任何端口)上运行 html 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何为本地主机测试运行设置虚拟目录?

ES6 fetch:如何更改它调用的本地主机端口?

如何在 Linux 中删除在特定端口上运行的进程

如何在.py文件中运行一个继续提供服务的本地主机,直到关键字停止它为止?

Ngrok > Nginx > 本地主机端口

如何使用 dio 从本地主机:3000 切换到准备在 Flutter 中生产的东西?