fis3 部署手册
为什么使用FIS3
项目上线一段时间后如果更新JS或CSS文件,而客户端已经对该文件缓存过了,那就有可能会无法及时更新而继续采用旧的JS或CSS文件,无法达到想要的效果。
处理类似情况最有效的解决方案就是修改其所有的链接,这样,请求就会从服务器下载最新的内容。但是要怎么改呢?
一:通过query的方式添加随机数。这样虽然可以保证每次都能获取到最新的静态资源,但即使没有更新也会去重新下载,缓存也就失去了意义,增加了服务器的负担。
二:通过query的方式添加时间戳或者版本号
<script type="text/javascript" src="index.js?t=20170325"></script>
<script type="text/javascript" src="index.js?v=1.0.0.0"></script>
这种解决方案很是直观,每次更新只需要更新相关的静态资源和页面,做到了局部更新,减轻了服务器负担,同时也使得浏览器缓存得到了有效利用。
但是,如果是访问量比较大的网站的话,还是会面临一些新的问题的。
通常,发布新版本也就是发布新的静态资源和页面的过程。比如:要发布一个index.aspx的页面,同时引入了index.js的资源。发布新版本就是要覆盖服务器上的这两个文件,不管你怎么操作,这两个文件在覆盖的过程中总会产生时间间隙的,对于访问量大的网站,在这个时间间隙内有可能是会出现新的用户访问的,这时,错误就发生了,新页面旧的静态资源或者旧页面新的静态资源。由于静态资源是覆盖发布,对于使用CDN缓存的网站来说还有可能面临CDN缓存攻击。
三:基于文件内容的hash版本冗余机制,也就是直接修改文件的URL,而不是在其后添加query
<script type="text/javascript" src="index_a5dae5b.js"></script>
其中”_a5dae5b”字符是根据index.js的文件内容进行hash运算得到的,只有文件内容发生变化了才会有更改。
由于不是同名覆盖,这样就完美的解决了发布的间隙问题,可以做到无缝连接;同时遇到问题回滚的时候只需要回滚页面就可以了。
安装Node和NPM
运行node-v6.11.4-x64安装文件安装Node和NPM
安装FIS3
运行cmd命令,执行以下安装命令安装FIS3
npm install -g fis3
安装完成后执行 fis3 -v 判断是否安装成功,如果安装成功,则显示类似如下信息:
使用FIS3发布MVC站点
1.编写发布脚本
FIS3的发布脚本为一个js脚本,用来控制执行发布命令时FIS3所做的操作。发布脚本需要放到待发布网站文件的根目录中。如下图
此名为MyWeb的文件夹为使用VS2013文件发布的网站站点文件夹,其中的fis-conf文件为FIS3发布文件。
关于fis-conf配置文件的编写,请参考http://fis.baidu.com/fis3/docs/beginning/intro.html
2.将待发布网站文件上传到服务器,并将编写好的发布脚本放到待发布的网站文件根目录中。
如:本机网站目录文件在d:\MyWeb中,在服务器上的“D:\待发布网站文件”下创建一个目录命名为WaitPublishWeb。则将本机d:\MyWeb目录中的网站文件拷贝到服务器上D:\待发布网站文件\WaitPublishWeb中。fis-conf文件也拷贝到D:\待发布网站文件\WaitPublishWeb中。
- 按照文档《fis3发布.net到iis上乱码》配置fis3源代码,不对webconfig做配置,webconfig的配置在源代码中已做好。
操作步骤:
1:cmd 输入:npm root -g 定位到文件夹下 lib\util.js 中
注释
if (buffer.charCodeAt(0) === 0xFEFF)
{
buffer = buffer.substring(1);
}
2:打开iis “.NET 全球化”-编码-文件-gb2312 改为UTF-8
4.运行cmd命令,进入"D:\待发布网站文件\WaitPublishWeb"目录,运行发布命令,命令格式为fis3 release -d D:\output
命令中的D:\output修改为发布目标网站目录,如201环境中的发布目标网站目录为E:\WebSite\Eplus365。则命令为fis3 release -d E:\WebSite\Eplus365.
fis3 部署手册的更多相关文章
- MariaDB Galera Cluster部署手册
MariaDB Galera Cluster部署手册 galara保证双主数据库的同步及一致性 1.环境准备 基于新部署.最小化安装centos6.5 1> yum install opens ...
- LVS+MYCAT+读写分离+MYSQL主备同步部署手册
LVS+MYCAT+读写分离+MYSQL主备同步部署手册 1 配置MYSQL主备同步…. 2 1.1 测试环境… 2 1.2 配置主数据库… 2 1.2.1 ...
- 【转载】LVS+MYCAT+读写分离+MYSQL主备同步部署手册(邢锋)
LVS+MYCAT+读写分离+MYSQL主备同步部署手册 1 配置MYSQL主备同步…. 2 1.1 测试环境… 2 1.2 配置主数据库… 2 1.2.1 ...
- OpenStack Kilo版加CEPH部署手册
OpenStack Kilo版加CEPH部署手册 作者: yz联系方式: QQ: 949587200日期: 2015-7-13版本: Kilo 转载地址: http://mp.weixin.qq.co ...
- [转帖]Oracle 11G RAC For Windows 2008 R2部署手册
Oracle 11G RAC For Windows 2008 R2部署手册(亲测,成功实施多次) https://www.cnblogs.com/yhfssp/p/7821593.html 总体规划 ...
- Javamelody部署手册
Javamelody部署手册 1. Javamelody下载 下载地址:http://code.google.com/p/javamelody/downloads/list(注:需要FQ才能打开下载 ...
- Symantec Backup Exec部署手册
转载 http://xiaxiaoguo.blog.51cto.com/858884/402810 Symantec Backup Exec部署手册 目录 1.Backup Exec 12.5安装. ...
- Kubernetes 1.13 的完整部署手册
前言: 非常详细的K8s的完整部署手册,由于Kubernetes版本和操作系统的版本关系非常敏感,部署前请查阅版本关系对应表 地址:https://github.com/kubernetes/kube ...
- MySQL+MGR 单主模式和多主模式的集群环境 - 部署手册 (Centos7.5)
MySQL Group Replication(简称MGR)是MySQL官方于2016年12月推出的一个全新的高可用与高扩展的解决方案.MGR是MySQL官方在5.7.17版本引进的一个数据库高可用与 ...
随机推荐
- springmvc管理资源开放
关于web.xml的url映射的小知识:<url-pattern>/</url-pattern> 会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀 ...
- 【web框架】Django
一.什么是web框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单的说,就是你用别人搭建好的舞台来做表演. 对于所有 ...
- Telnet使用
#使用telnet telnet #使用telnet,并连接到[ip] [port] telnet [ip] [port] baidu zone - telnet使用方法
- python导入模块的两种方式
第一种 from support import * 这种方式导入后可以直接调用(有命名冲突问题)命名冲突后定义的覆盖前定义的 如果在函数导入前定义 则导入函数覆盖 否则相反 if __name__ = ...
- CentOS源码编译安装Nginx
安装编译用到的软件: yum install glib2-devel openssl-devel pcre-devel bzip2-devel gzip-devel 现在到http://nginx.o ...
- Easyui 二级菜单
<div class="fitem"> <label>所在城市:</label> <input id="cityId" ...
- php对二维数据进行排序
PHP一维数组的排序可以用sort(),asort(),arsort()等函数,但是PHP二维数组的排序需要自定义. 方法一:(经验证,成功) 作用:对二维数组进行指定key排序 参数:$arr ...
- SVN服务器更改ip地址客户端怎么设置(转载)
SVN 服务器 IP 地址修改后,客户端对服务器的连接可以采用以下的方法重定位: 1. 如果客户端工具是TortoiseSVN,直接在工作副本上右键,选择TortoiseSVN->relocat ...
- MySQL之mysql客户端工作的批处理一些使用手法
通常我们会用mysql这个客户端程序来连接mysql库.这个通常是工作在交互式模式下的.如我们连接上mysql并执行如下操作: mysql -uroot -h127. -P3306 Welcome t ...
- Atitit.index manager api design 索引管理api设计
Atitit.index manager api design 索引管理api设计 1. kw1 1.1. 索引类型 unique,normal,fulltxt1 1.2. 聚集索引(clustere ...