java - 如何在Java套接字编程中解析index.html文件中包含的style.css的路径

标签 java sockets

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

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

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

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

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

最佳答案

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

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

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

关于java - 如何在Java套接字编程中解析index.html文件中包含的style.css的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52462880/

相关文章:

c++ - Winsock - 在 C++ 中从 Java 客户端读取整数

C - TCP 校验和(使用原始套接字)——如何获取 IP 地址

javascript - JSP - 如何在 session.setAttribute 中传递 javascript 变量?

java - 解析 JSON 时如何不使用嵌套的 try catch block ?

Java项目布局——能简单点吗?

聊天套接字 + io channel 不会立即用 C 语言显示传入数据包?

linux - 丢弃传入的 UDP 数据包而不读取

java - 如何获取jtable中文件的包含内容?

Java - 两个线程不同步

连接功能时常失效?