当前位置: 首页 > news >正文

http模块 服务器端如何响应(获取)静态资源?

一、静态资源与动态资源介绍:

(1)静态资源

内容长时间不改变的资源。eg:图片、视频、css js html文件、字体文件...

(2)动态资源

内容经常更新的资源。eg:百度首页、淘宝搜索列表...

二、服务器端如何获取静态资源的代码?

我的目录:

01.css文件:

h1{color: red;font-size: 30px;
}

01.js文件:

var button=document.getElementById('button1');
button.onclick=function(){this.style.backgroundColor="yellow";
}

 01.html文件:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link rel="stylesheet" href="./css/01.css">
</head>
<body><h1>静态资源</h1><button id="button1">请点击我</button>
</body>
<script src="./js/01.js"></script>
</html>

serve.js文件 :

// 1.导入http模块
const http = require('http');
const fs = require('fs');
// 2.创建服务对象
const server = http.createServer((request, response) => {// 获取请求url路径let { pathname } = new URL(request.url, 'http://127.0.0.1');// 拼接文件路径 以我的目录为例子,我所有的文件都是在pages这个文件夹里面的。所以定义一个变量filePath来进行总体拼接,以简化后续代码// 注意:如果我不单单想局限于读取pages文件夹下的内容,若我想读取我的大文件夹my下的任何文件,就将filePath设置为let filePath=__dirname+pathname; 注意,读取的文件名不能以中文命名。否则会报错let filePath=__dirname+'/pages'+pathname;// 读取文件 fs异步APIfs.readFile(filePath,(err,data)=>{if(err){response.end("文件读取失败,失败原因是:"+err.message);return;}response.end(data);})
})
// eg:服务器端响应出01.css静态资源,即打开浏览器输入http://127.0.0.1/css/01.css即可显示其代码内容
// 3.监听端口,启动服务
server.listen(9000, () => {console.log('服务已启动...');
})

服务器运行结果显示 :

当我想获取01.html里面的代码时:在端口号后接/01.html

 当我想获取01.js里面的代码时:在端口号后接/js/01.js

http://www.lryc.cn/news/330379.html

相关文章:

  • 基于PHP的校园招聘管理系统
  • LLMs 可能在 2 年内彻底改变金融行业
  • nodejs 中 yarn的安装和使用
  • 软件工程学习笔记14——案例解析篇
  • 【文件操作API的使用】
  • C++ 让类只在堆或栈上分配
  • SpringMVC源码分析(九)--返回值解析器
  • 京西商城——创建订单和获取订单接口
  • 大话设计模式之模板方法模式
  • 新model开发记录
  • ARMday1
  • 【C++风云录】创造视觉奇迹:探索C++图形编程的魅力与可能性
  • 常见的Nginx+Redis+MQ+DB架构设计
  • vue+elementUI搭建动态表头的表格
  • 【ENSP】交换机和交换机之间实现静态路由
  • 2024.2.18力扣每日一题——N叉树的前序遍历
  • Taro活动列表中,对某一个活动添加分享按钮
  • 深入理解计算机系统 家庭作业 2.65
  • Java字节码
  • 深入解析大数据体系中的ETL工作原理及常见组件
  • 条件变量的简易C++实现版
  • 目标检测评价标准
  • C51-- 蓝牙,WIFI模块
  • HN热帖|替换Redis的一场赛跑
  • Kubernetes(k8s):网络插件之Calico安装与详解
  • Chrome base 库详解:工具类和常用类库
  • Nginx开发实战三:替换请求资源中的固定数据
  • 如何在Python中实现多线程和多进程?
  • Redis面试题10道
  • vue3从精通到入门6:v-memo指令