利用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 相关文章推荐
浅析onsubmit校验表单时利用ajax的return false无效问题
Jul 10 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
Jun 14 Javascript
JavaScript中的继承方式详解
Feb 11 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
Sep 09 Javascript
EasyUI布局 高度自适应
Jun 04 Javascript
原生JS实现图片轮播切换效果
Dec 15 Javascript
JS鼠标3次点击事件实现代码及扩展思路
Sep 12 Javascript
JavaScript运行原理分析
Feb 09 Javascript
vue使用Font Awesome的方法步骤
Feb 26 Javascript
JavaScript工具库之Lodash详解
Jun 15 Javascript
layer 刷新某个页面的实现方法
Sep 05 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
Oct 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
php PDO中文乱码解决办法
2009/07/20 PHP
ThinkPHP 模板引擎使用详解
2017/05/07 PHP
解决Laravel5.5下的toArray问题
2019/10/15 PHP
js防止表单重复提交的两种方法
2013/09/30 Javascript
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
JS获取下拉框显示值和判断单选按钮的方法
2015/07/09 Javascript
jQuery移动web开发中的页面初始化与加载事件
2015/12/03 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
使用Web Uploader实现多文件上传
2016/06/08 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
AngularJS中$http服务常用的应用及参数
2016/08/22 Javascript
angular实现表单验证及提交功能
2017/02/01 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
vue2 全局变量的设置方法
2018/03/09 Javascript
JavaScript封装的常用工具类库bee.js用法详解【经典类库】
2018/09/03 Javascript
angular 数据绑定之[]和{{}}的区别
2018/09/25 Javascript
浅谈Vue中render中的h箭头函数
2019/11/07 Javascript
[02:51]2014DOTA2国际邀请赛 IG战队官方纪录片
2014/07/21 DOTA
Python ZipFile模块详解
2013/11/01 Python
状态机的概念和在Python下使用状态机的教程
2015/04/11 Python
python简单猜数游戏实例
2015/07/09 Python
Python AES加密模块用法分析
2017/05/22 Python
基于pycharm 项目和项目文件命名规则的介绍
2021/01/15 Python
html5中audio支持音频格式的解决方法
2018/08/24 HTML / CSS
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
七年级英语教学反思
2014/01/15 职场文书
称象教学反思
2014/02/03 职场文书
文秘班元旦晚会活动策划方案
2014/08/28 职场文书
村党支部对照检查材料思想汇报
2014/09/28 职场文书
破坏寝室公物检讨书
2014/11/17 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书
Python列表删除重复元素与图像相似度判断及删除实例代码
2021/05/07 Python
Nginx+Tomcat负载均衡多实例详解
2022/04/11 Servers
MyBatis核心源码深度剖析SQL语句执行过程
2022/05/20 Java/Android
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS