-
静态资源服务器的实现方式有很多,基本每种服务端语言都有对应的框架或容器,比如 Java 的 Tomcat、以及 Python、PHP、Node.js 等,另外还有较为专业的 HTTP 和反向代理 Web 服务器 Nginx,均可实现这一目标。
-
这里选择 Node.js 实现的静态资源服务器,主要原因是其语法也是 JavaScript,与前端的 Vue 通用;另外在 Node 的生态下,已经有现成的库实现了跨域,关键是跟 Vue 在开发环境下跨域完全一样,平滑迁移,无缝切换。
效果
Note: 这篇文章的内容比较简单,就是基于 koa 实现了一个静态资源服务器,直接上核心代码,就不放到华为云了。部署时将该 Node.js 项目放到 Linux 的目录 A,然后前端 Vue 的 dist 静态资源文件夹直接放到目录 A 即可。
Node.js 代码index.js
const path = require(“path”);
const Koa = require(“koa”);
const static = require(“koa-static”);
const httpProxyMiddleware = require(“http-proxy-middleware”);
const koaConnect = require(“koa2-connect”);
const app = new Koa();
app.use(static(path.join(__dirname, “dist”)));
const proxy = function(context, options) {
if (typeof options === “string”) {
options = {
target: options
};
}
return async function(ctx, next) {
await koaConnect(httpProxyMiddleware(context, options))(ctx, next);
};
};
// proxy config:生产环境跨域
const proxyTable = {
“/3rd”: {
target: “http://www.tuling123.com/openapi/api”,
changeOrigin: true,
pathRewrite: {
“^/3rd”: “”
}
},
“/api”: {
target: “http://114.116.31.223:8080”,
changeOrigin: true
// pathRewrite: {
// ‘^/api’: ‘’
// }
}
};
Object.keys(proxyTable).map(context => {
const options = proxyTable[context];
app.use(proxy(context, options));
});
const port = process.env.PORT || 8888;
app.listen(port, () => {
console.log(Koa app listening at ${port}...
);
});
Note: 开发环境跨域
Vue
在开发环境下的跨域配置与生产环境下的跨域配置写法完全一致,这是用Node.js
来实现此静态资源服务器的优势。
Node.js 配置package.json
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
学习笔记
主要内容包括html,css,html5,css3,JavaScript,正则表达式,函数,BOM,DOM,jQuery,AJAX,vue等等
HTML/CSS
**HTML:**HTML基本结构,标签属性,事件属性,文本标签,多媒体标签,列表 / 表格 / 表单标签,其他语义化标签,网页结构,模块划分
**CSS:**CSS代码语法,CSS 放置位置,CSS的继承,选择器的种类/优先级,背景样式,字体样式,文本属性,基本样式,样式重置,盒模型样式,浮动float,定位position,浏览器默认样式
HTML5 /CSS3
**HTML5:**HTML5 的优势,HTML5 废弃元素,HTML5 新增元素,HTML5 表单相关元素和属性
**CSS3:**CSS3 新增选择器,CSS3 新增属性,新增变形动画属性,3D变形属性,CSS3 的过渡属性,CSS3 的动画属性,CSS3 新增多列属性,CSS3新增单位,弹性盒模型
JavaScript
**JavaScript:**JavaScript基础,JavaScript数据类型,算术运算,强制转换,赋值运算,关系运算,逻辑运算,三元运算,分支循环,switch,while,do-while,for,break,continue,数组,数组方法,二维数组,字符串
[外链图片转存中…(img-mSgqvomD-1712050452443)]
JavaScript
**JavaScript:**JavaScript基础,JavaScript数据类型,算术运算,强制转换,赋值运算,关系运算,逻辑运算,三元运算,分支循环,switch,while,do-while,for,break,continue,数组,数组方法,二维数组,字符串