nodejs构建本地web测试服务器 如何解决访问静态资源问题

发布时间 - 2026-01-11 02:20:04    点击率:

直接打开html文件,是以file:///方式打开的,这种方式很多时候会遇到跨域的问题,因此我们一般会搭建一个简易的本地服务器,来运行测试页面。

一、构建静态服务器

1、使用express模块

建立个js文件,命名server,内容代码如下:

var express = require('express');
var app = express();
var path = require('path');

//指定静态资源访问目录
app.use(express.static(require('path').join(__dirname, 'public')));
// app.use(express.static(require('path').join(__dirname, 'views'))); 如果有文件夹存放资源,出现报错的话,那就多use几次就可以了
// 设定views变量,意为视图存放的目录
app.set('views', (__dirname + "/public"));
// app.set('views', __dirname);
// 修改模板文件的后缀名为html
app.set( 'view engine', 'html' );
// 运行ejs模块
app.engine( '.html', require( 'ejs' ).__express );

app.get("/", function(req, res) {
  res.render('index');
});

var server = app.listen(1336, "127.0.0.1",function(){
  var host = server.address().address;
  var port = server.address().port;
  console.log("Server running at http://%s:%s", host, port)
});

文件结构如下:

运行的话只要执行:node server.js 就可以了

然后在浏览器输入http://127.0.0.1:1336/ 来访问项目文件夹内的文件了

2、使用connect模块

建立个js文件,命名 server2 ,内容代码如下:

 var connect = require("connect");
 var serveStatic = require("serve-static");

 var app = connect();
 // app.use(serveStatic("C:\\xxx\\xxx\\xxx\\项目文件夹"));
 app.use(serveStatic("public"));

 app.listen(1337);
 console.log('Server running at http://127.0.0.1:1337/');

运行的话只要执行:node server2.js 就可以了,

然后在浏览器输入http://127.0.0.1:1337/ 来访问项目文件夹内的文件了。(如果是index.html文件可以省略不写,默认加载的就是这个文件);

3、使用http模块

建立个js文件,命名 server3 ,内容代码如下:

var finalhandler = require('finalhandler')
var http = require('http')
var serveStatic = require('serve-static')

// Serve up public/ftp folder
var serve = serveStatic('public', {'index': ['index.html', 'index.htm']})

// Create server
var server = http.createServer(function onRequest (req, res) {
  serve(req, res, finalhandler(req, res))
})

// Listen
server.listen(1338);
console.log('Server running at http://127.0.0.1:1338/');

运行的话只要执行:node server3.js 就可以了,

然后在浏览器输入http://127.0.0.1:1338/ 来访问项目文件夹内的文件了。

注:总的文件目录如下:

源码下载地址:https://github.com/arvin0/nodejs-example/tree/master/web-static-test-server

二、解决访问静态资源

主要使用两个模块

1.通用的 serve-static 模块

详细文档:https://github.com/expressjs/serve-static

2.express专属的  app.use(express.static(require('path').join(__dirname, 'public')));  方法

详细文档:http://expressjs.com/en/4x/api.html ,然后ctrl+F搜索 express.static ,就能找到对应的说明了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# nodejs  # web  # 服务器  # nodejs express配置自签名https服务器的方法  # 深入理解nodejs搭建静态服务器(实现命令行)  # 用Nodejs搭建服务器访问html、css、JS等静态资源文件  # 在windows上用nodejs搭建静态文件服务器的简单方法  # Nodejs实现的一个静态服务器实例  # 使用nodejs、Python写的一个简易HTTP静态文件服务器  # nodejs发布静态https服务器的方法  # 就可以  # 来访问  # 文档  # 就能  # 的说  # 下载地址  # 几次  # 报错  # 就多  # 大家多多  # 意为  # 不写  # 加载  # listen  # __express  # set  # function  # render  # res  # req 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  ,在苏州找工作,上哪个网站比较好?  如何在腾讯云服务器上快速搭建个人网站?  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  Laravel如何使用Gate和Policy进行授权?(权限控制)  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  Python文件操作最佳实践_稳定性说明【指导】  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  Laravel如何配置Horizon来管理队列?(安装和使用)  Laravel如何实现API速率限制?(Rate Limiting教程)  网易LOFTER官网链接 老福特网页版登录地址  英语简历制作免费网站推荐,如何将简历翻译成英文?  如何快速完成中国万网建站详细流程?  高防服务器租用首荐平台,企业级优惠套餐快速部署  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  高性能网站服务器部署指南:稳定运行与安全配置优化方案  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  php json中文编码为null的解决办法  如何快速重置建站主机并恢复默认配置?  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  javascript中闭包概念与用法深入理解  Android实现代码画虚线边框背景效果  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  如何在IIS中新建站点并解决端口绑定冲突?  JavaScript数据类型有哪些_如何准确判断一个变量的类型  怎样使用JSON进行数据交换_它有什么限制  MySQL查询结果复制到新表的方法(更新、插入)  Linux系统命令中tree命令详解  Laravel storage目录权限问题_Laravel文件写入权限设置  如何在云主机上快速搭建网站?  进行网站优化必须要坚持的四大原则  实例解析angularjs的filter过滤器  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  微信小程序 五星评分(包括半颗星评分)实例代码  三星、SK海力士获美批准:可向中国出口芯片制造设备  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  Laravel怎么上传文件_Laravel图片上传及存储配置  微信h5制作网站有哪些,免费微信H5页面制作工具?  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程