利用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 相关文章推荐
javascript arguments 传递给函数的隐含参数
Aug 21 Javascript
csdn 博客中实现运行代码功能实现
Aug 29 Javascript
javascript 通用简单的table选项卡实现
May 07 Javascript
jquery scroll()区分横向纵向滚动条的方法
Apr 04 Javascript
自制的文件上传JS控件可支持IE、chrome、firefox etc
Apr 18 Javascript
从零学jquery之如何使用回调函数
May 16 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
Sep 18 Javascript
详解JavaScript中双等号引起的隐性类型转换
May 30 Javascript
AngularJS打开页面隐藏显示表达式用法示例
Dec 25 Javascript
jquery实现自适应banner焦点图
Feb 16 Javascript
vuex实现数据状态持久化
Nov 11 Javascript
JavaScript 防篡改对象的用法示例
Apr 24 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
是否存在第一台收音机的说法
2021/03/01 无线电
PHP中的MYSQL常用函数(php下操作数据库必备)
2010/09/12 PHP
php学习之数据类型之间的转换代码
2011/05/29 PHP
PHP实现微信申请退款功能
2018/10/01 PHP
广告代码静态化js通用函数
2007/05/09 Javascript
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
2012/08/09 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
2015/09/26 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
2018/03/13 Javascript
js Element Traversal规范中的元素遍历方法
2018/04/19 Javascript
C#程序员入门学习微信小程序的笔记
2019/03/05 Javascript
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
[36:16]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.19
2020/12/24 DOTA
Python模仿POST提交HTTP数据及使用Cookie值的方法
2014/11/10 Python
详解C++编程中一元运算符的重载
2016/01/19 Python
详解appium+python 启动一个app步骤
2017/12/20 Python
python实现在IDLE中输入多行的方法
2018/04/19 Python
numpy中矩阵合并的实例
2018/06/15 Python
CentOS 7下安装Python3.6 及遇到的问题小结
2018/11/08 Python
python能做什么 python的含义
2019/10/12 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
Python调用JavaScript代码的方法
2020/10/27 Python
python 如何设置守护进程
2020/10/29 Python
CSS3五个技巧给你的网站带来出色的效果
2009/04/02 HTML / CSS
时尚设计师手表:The Watch Cabin
2018/10/06 全球购物
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
公积金转移接收函
2014/01/11 职场文书
政府信息公开实施方案
2014/05/09 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
个人学习总结范文
2015/02/15 职场文书
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python