利用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 容错处理代码, 屏蔽错误信息
Mar 09 Javascript
javascript 写类方式之四
Jul 05 Javascript
了解一点js的Eval函数
Jul 26 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
Jul 09 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
Apr 18 Javascript
JS动态创建元素的两种方法
Apr 20 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
Sep 21 Javascript
移动端点击态处理的三种实现方式
Jan 12 Javascript
D3.js中强制异步文件读取同步的几种方法
Feb 06 Javascript
js实现简单的二级联动效果
Mar 09 Javascript
微信小程序之蓝牙的链接
Sep 26 Javascript
微信小程序利用button控制条件标签的变量问题
Mar 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中利用substr_replace将指定两位置之间的字符替换为*号
2011/01/27 PHP
PHP5多态性与动态绑定介绍
2015/04/03 PHP
使用PHP生成图片的缩略图的方法
2015/08/18 PHP
PHP扩展开发教程(总结)
2015/11/04 PHP
PHP访问数据库集群的方法小结
2016/03/14 PHP
JavaScript 学习笔记(十一)
2010/01/19 Javascript
javascript实现点击按钮让DIV层弹性移动的方法
2015/02/24 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
JavaScript通过字符串调用函数的实现方法
2015/03/18 Javascript
js实现的四级左侧网站分类菜单实例
2015/05/06 Javascript
基于JavaScript实现瀑布流布局(二)
2016/01/26 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
2017/02/22 Javascript
在使用JSON格式处理数据时应该注意的问题小结
2017/05/20 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
2017/10/13 jQuery
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
在vue项目中使用Jquery-contextmenu插件的步骤讲解
2019/01/27 jQuery
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
详解python 发送邮件实例代码
2016/12/22 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
python-tkinter之按钮的使用,开关方法
2019/06/11 Python
Django框架之中间件MiddleWare的实现
2019/12/30 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
ASP.NET Core中的配置详解
2021/02/05 Python
使用css3匹配手机屏幕横竖状态
2014/01/27 HTML / CSS
伦敦眼门票在线预订:London Eye
2018/05/31 全球购物
Exception类的常用方法
2012/06/16 面试题
培训协议书范本
2014/04/22 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
实名检举信范文
2015/03/02 职场文书
任长霞观后感
2015/06/16 职场文书
三十年同学聚会感言
2015/07/30 职场文书