首页 > 解决方案 > 如何在 Java 套接字编程中解析 index.html 文件中包含的 style.css 的路径

问题描述

我正在尝试使用 Java 套接字编程创建一个 http 服务器。

假设我正在从一个名为“web”的特定目录提供静态文件(html、js、css 等)。假设我在“web”中有另一个目录“hello”。

当来自客户端或浏览器的请求为 /hello 或 /hello/ 时,我会显示保存在“hello”目录下的 index.html 文件。所以让我们假设“hello”是上下文路径。

现在我的 index.html 文件包含一个 style.css。所以来自客户端的请求分别是 /hello 和 /style.css,但这里我没有 style.css 文件的完整路径。

那么我怎么知道应该从“hello”目录提供 style.css 文件呢?

标签: javasockets

解决方案


如果文档是从/hello/(带有斜杠)提供的并且引用了资源style.css,浏览器将请求/hello/style.css. 服务器中不需要额外的逻辑。

如果文档是从/hello(没有尾部斜杠)提供的并且引用了资源style.css,浏览器将请求/style.css. 不要在此地址提供您的文档,而是考虑提供一个 HTTP 重定向到/hello/,以解决资源命名问题并保持 URL 一致。

您还可以将资源引用为/hello/style.css,从而完全避免该问题。


推荐阅读