利用CDN加速react webpack打包后的文件详解


Posted in Javascript onFebruary 22, 2018

此文不介绍webpack基本配置,如果对基本配置有疑问请查阅官方文档。

1、配置webpack.config.js

将output.publicPath改成上传到的cdn地址, 例(对应上面上传配置):

publicPath: "https://your_base_cdn_url" + process.env.NODE_ENV + "/cdn/"

打包

NODE_ENV=production node_modules/webpack/bin/webpack.js -p

这样打包后的文件例如有

index.html
12345678.src.js
12345678.src.css
...

此时,打包后生成的index.html文件中已经引入了cdn文件。

<html lang="en">
<head>
 <title>title</title>
 <link href="https://your_base_cdn_url/production/cdn/12345678.src.css" rel="external nofollow" rel="stylesheet">
</head>
<body id="body">
 <div id="root"></div>
<script src="https://your_base_cdn_url/production/cdn/12345678.src.js"></script></body>
</html>

2、上传文件至CDN

在部署脚本中写一段上传cdn的脚本, 例:

echo "start uploading to upyun"
HOST=v0.ftp.upyun.com
USER=uploader/your-username
PASS=your-password
cd build
files=$(ls | grep -v 'index.html' | xargs)
ftp -inv $HOST <<EOF
user $USER $PASS
mkdir /$node_env/cdn
cd /$node_env/cdn
mput $files
bye
EOF
cd ..
echo "finish uploading to upyun"

将主页文件上传至服务器,使用nginx代理

server {
 listen 80;

 server_name your_server_name;
 access_log /var/log/nginx/your_project.log;
 root /var/www/your_project/production/current;

 location / {
 try_files $uri /index.html =404;
 add_header Pragma no-cache;
 expires -5y;
 }

 location ~ \.(js|css)$ {
 expires 360000;
 add_header Cache-Control "max-age=360000;";
 }
}

访问http://your_server_name即可访问使用CDN加速后网页。

以上这篇利用CDN加速react webpack打包后的文件详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS控制表格隔行变色
Jun 26 Javascript
循环 vs 递归浅谈
Feb 28 Javascript
SeaJS入门教程系列之完整示例(三)
Mar 03 Javascript
jquery.hotkeys监听键盘按下事件keydown插件
May 11 Javascript
从零学JS之你需要了解的几本书
May 19 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
Jul 17 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
Sep 25 Javascript
Vue侦测相关api的实现方法
May 22 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
Nov 04 Javascript
js里面的变量范围分享
Jul 18 Javascript
关于javascript中的promise的用法和注意事项(推荐)
Jan 15 Javascript
关于JavaScript 中 if包含逗号表达式
Nov 27 Javascript
node内置调试方法总结
Feb 22 #Javascript
详解vue移动端日期选择组件
Feb 22 #Javascript
webpack 单独打包指定JS文件的方法
Feb 22 #Javascript
webpack中使用iconfont字体图标的方法
Feb 22 #Javascript
微信小程序之圆形进度条实现思路
Feb 22 #Javascript
webpack下实现动态引入文件方法
Feb 22 #Javascript
JavaScript 有用的代码片段和 trick
Feb 22 #Javascript
You might like
配置支持SSI
2006/11/25 PHP
PHP常用函数之根据生日计算年龄功能示例
2019/10/21 PHP
javascript中sort()的用法实例分析
2015/01/30 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
深入理解ECMAScript的几个关键语句
2016/06/01 Javascript
JavaScript DOM节点操作方法总结
2016/08/23 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
详谈$.data()的用法和作用
2017/02/13 Javascript
搭建简单的nodejs http服务器详解
2017/03/09 NodeJs
小程序云开发如何实现图片上传及发表文字
2019/05/17 Javascript
利用JS如何获取form表单数据
2019/12/19 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[08:47]2018国际邀请赛 OG战队举杯时刻
2018/08/29 DOTA
python通过floor函数舍弃小数位的方法
2015/03/17 Python
python操作redis的方法
2015/07/07 Python
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
利用scrapy将爬到的数据保存到mysql(防止重复)
2018/03/31 Python
python 获取页面表格数据存放到csv中的方法
2018/12/26 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
matplotlib 范围选区(SpanSelector)的使用
2021/02/24 Python
全球最大的跑步用品商店:Road Runner Sports
2016/09/11 全球购物
Lookfantastic法国官网:英国知名美妆购物网站
2017/10/28 全球购物
印度化妆品购物网站:Nykaa
2018/07/22 全球购物
澳大利亚Rockwear官网:女子瑜伽、健身和运动服
2021/01/26 全球购物
学生处主任岗位职责
2013/12/01 职场文书
营业员实习自我鉴定
2013/12/07 职场文书
人民教师求职自荐信
2014/03/12 职场文书
企业挂职心得体会
2014/09/10 职场文书
不服从公司安排检讨书
2014/09/24 职场文书
庆六一开幕词
2015/01/29 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
政审证明材料
2015/06/19 职场文书