利用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中简单的实现像C#中using功能(有源码下载)
Jan 09 Javascript
用Javascript 获取页面元素的位置的代码
Sep 25 Javascript
Javascript Cookie读写删除操作的函数
Mar 02 Javascript
js 内存释放问题
Apr 25 Javascript
JQuery中的$.getJSON 使用说明
Mar 10 Javascript
Javascript和Java获取各种form表单信息的简单实例
Feb 14 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
Apr 12 Javascript
js中new一个对象的过程
Feb 20 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
Apr 12 Javascript
vue组件父子间通信之综合练习(聊天室)
Nov 07 Javascript
基于 Vue 实现一个酷炫的 menu插件
Nov 14 Javascript
用Node提供静态文件服务的方法
Jul 06 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
使用PHP实现二分查找算法代码分享
2011/06/24 PHP
php懒人函数 自动添加数据
2011/06/28 PHP
PHP防止跨域提交表单
2013/11/01 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
PHP aes (ecb)解密后乱码问题
2015/06/22 PHP
PHP-FPM和Nginx的通信机制详解
2019/02/01 PHP
JavaScript用JQuery呼叫Server端方法示例代码
2014/09/03 Javascript
深入理解javascript变量声明
2014/11/20 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
2015/06/18 Javascript
深入探讨前端框架react
2015/12/09 Javascript
JS二叉树的简单实现方法示例
2017/04/05 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
深入剖析Node.js cluster模块
2018/05/23 Javascript
在Vue-cli里应用Vuex的state和mutations方法
2018/09/16 Javascript
基于webpack4.X从零搭建React脚手架的方法步骤
2018/12/23 Javascript
JavaScript Event Loop相关原理解析
2020/06/10 Javascript
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
spyder常用快捷键(分享)
2017/07/19 Python
python的unittest测试类代码实例
2017/12/07 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
Python将一个Excel拆分为多个Excel
2018/11/07 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
python-sys.stdout作为默认函数参数的实现
2020/02/21 Python
python Yaml、Json、Dict之间的转化
2020/10/19 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
HTML5 Canvas玩转酷炫大波浪进度图效果实例(附demo)
2016/12/14 HTML / CSS
最新英语专业学生求职信范文
2013/09/21 职场文书
物流司机岗位职责
2013/12/28 职场文书
学生拾金不昧表扬信
2014/01/21 职场文书
事业单位鉴定材料
2014/05/25 职场文书
展览会邀请函
2015/02/02 职场文书
成绩单家长意见
2015/06/03 职场文书
现实表现证明材料
2015/06/19 职场文书
python3 字符串str和bytes相互转换
2022/03/23 Python