利用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获取DropDownList的value值与text值的示例代码
Jan 07 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
Mar 13 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
Sep 15 Javascript
基于JS代码实现图片在页面中旋转效果
Jun 16 Javascript
javascript中获取class的简单实现
Jul 12 Javascript
less简单入门(CSS 预处理语言)
Mar 08 Javascript
基于daterangepicker日历插件使用参数注意的问题
Aug 10 Javascript
vuex学习之Actions的用法详解
Aug 29 Javascript
详解多页应用 Webpack4 配置优化与踩坑记录
Oct 16 Javascript
node.js使用yargs处理命令行参数操作示例
Feb 11 Javascript
vue props 一次传多个值实例
Jul 22 Javascript
5种方法告诉你如何使JavaScript 代码库更干净
Sep 15 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+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
SwfUpload在IE10上不出现上传按钮的解决方法
2013/06/25 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
Android中的jQuery:AQuery简介
2014/05/06 Javascript
jQuery制作仿Mac Lion OS滚动条效果
2015/02/10 Javascript
jQuery通过扩展实现抖动效果的方法
2015/03/11 Javascript
通过扫描二维码打开app的实现代码
2016/11/10 Javascript
nodejs实例解析(输出hello world)
2017/01/03 NodeJs
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
node.js实现微信开发之获取用户授权
2019/03/18 Javascript
layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法
2019/09/24 Javascript
在vue-cli3中使用axios获取本地json操作
2020/07/30 Javascript
用python与文件进行交互的方法
2018/03/01 Python
简单实现Python爬取网络图片
2018/04/01 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
Pandas库之DataFrame使用的学习笔记
2019/06/21 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
pycharm中使用request和Pytest进行接口测试的方法
2020/07/31 Python
python 如何实现遗传算法
2020/09/22 Python
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
GNC健安喜官方海外旗舰店:美国著名保健品牌
2017/01/04 全球购物
 Alo Yoga官网:购买瑜伽服装
2018/06/17 全球购物
学生打架检讨书1000字
2014/01/16 职场文书
转预备党员政审材料
2014/02/06 职场文书
大学运动会入场词
2014/02/22 职场文书
中秋手机店促销方案
2014/06/16 职场文书
《曹冲称象》教学反思
2016/02/20 职场文书
心得体会该怎么写呢?
2019/06/27 职场文书
解决SpringCloud Feign传对象参数调用失败的问题
2021/06/23 Java/Android
Python 数据可视化神器Pyecharts绘制图像练习
2022/02/28 Python
世界十大动漫制作公司排行榜,迪士尼上榜,第二是美国代表性文化符
2022/03/18 欧美动漫