使用C ++提供静态文件

时间:2018-04-16 13:35:21

标签: c++ static-files

我有自己的基于C ++ TCP套接字的Web服务器实现。现在这个服务器可以在HTTP正文中发送纯文本。我需要这个服务器来发送静态文件(HTML,CSS,JS)。文件位于./static/目录(./static/admin.html./static/admin.css./static/admin.js)中,服务器读取文件内容并使用适当的HTTP标头将其发送到客户端。 admin.html文件包含指向admin.cssadmin.js的链接,如下面的代码所示。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Admin Page</title>
    <link rel="stylesheet" type="text/css" href="admin.css">
</head>
<body>
    <script src="admin.js"></script>
    <!-- ... -->
</body>
</html>

1)客户如何收到cssjs个文件?

2)提供静态文件的常识是什么?

2.1)我应该将*.html文件读取到缓冲区,注入*.css标记中<style>的缓冲区内容以及*.js标记中<script>的内容?还有另一种更有效/优雅/好的方式吗?

2 个答案:

答案 0 :(得分:2)

  1. 客户端会收到.css和.js文件但不是你想象的方式!当客户端请求你的html文件时,它会解析它,然后会发现它包含.css或.js等。所以它会在其他请求中单独询问它们。为了使其正常工作,您需要键入发送回客户端的文件。查找HTTP标头“Content-Type”(例如:对于HTML文件,您应该将其键入“Content-Type:text / html”)。
  2. 不清楚你要求的是什么。
  3. 当然不是,让客户做好自己的工作!

答案 1 :(得分:0)

现代浏览器将为您完成此操作,并且在服务器端您需要做的只是用正确的文件进行响应。大声笑。希望对您有帮助