利用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 qq右下角滑出窗口 sheyMsg
Mar 21 Javascript
JavaScript初学者需要了解10个小技巧
Aug 25 Javascript
jQuery easyui datagrid动态查询数据实例讲解
Feb 26 Javascript
js的.innerHTML = &quot;&quot;IE9下显示有错误的解决方法
Sep 16 Javascript
JavaScript常用脚本汇总(一)
Mar 04 Javascript
js制作可以延时消失的菜单
Jan 13 Javascript
jquery获取transform里的值实现方法
Dec 12 jQuery
JS伪继承prototype实现方法示例
Jun 20 Javascript
angularjs1.5 组件内用函数向外传值的实例
Sep 30 Javascript
jQuery分组选择器简单用法示例
Apr 04 jQuery
微信小程序webview与h5通过postMessage实现实时通讯的实现
Aug 20 Javascript
小程序实现上下切换位置
Nov 16 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 中dirname(_file_)讲解
2007/03/18 PHP
php empty,isset,is_null判断比较(差异与异同)
2010/10/19 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
PHP获取时间排除周六、周日的两个方法
2014/06/30 PHP
php实现的验证码文件类实例
2015/06/18 PHP
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
PHP 9 大缓存技术总结
2015/09/17 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
ExtJS 2.0实用简明教程之应用ExtJS
2009/04/29 Javascript
用jQuery模拟页面加载进度条的实现代码
2011/12/19 Javascript
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
JavaScript删除指定子元素代码实例
2015/01/13 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
2016/06/24 Javascript
vue.js加载新的内容(实例代码)
2017/06/01 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
详解微信小程序中组件通讯
2018/10/30 Javascript
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
Vue实现点击导航栏当前标签后变色功能
2020/08/19 Javascript
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
pandas 空数据处理方法详解
2019/11/02 Python
keras 获取某层的输入/输出 tensor 尺寸操作
2020/06/10 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
京东全球售:直邮香港,澳门,台湾,美国,澳大利亚等地区
2017/09/24 全球购物
生日邀请函范文
2014/01/13 职场文书
先进事迹报告会感言
2014/01/24 职场文书
校园元旦活动总结
2014/07/09 职场文书
科学发展观标语
2014/10/08 职场文书
故宫导游词
2015/01/31 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
党员进社区活动总结
2015/05/07 职场文书
vue实现列表垂直无缝滚动
2022/04/08 Vue.js
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
2022/09/23 MySQL