如何高效部署前端代码,如css,js...

看了网上一些文章,做了点总结,顺便再加点自己的东西,简单的说下。

1.利用浏览器的304缓存,但是304叫协商缓存,还是需要与服务器通信一次

2.强制使用浏览器使用本地缓存(cache-control/expires),但是问题来了,不让浏览器发资源请求,资源怎么更新。

3.使用版本号,类似于a.css?v=1.0,b.css?v=1.0,做了更改的时候都变成a.css?v=2.0,b.css?v=2.0,有时候a.css改变了,b.css没有改变,不是多此一举吗?

4.使用数据摘要算法,类似于a.css?v=0abc23,b.css?v=65ao1j,如果a.css做了更改的话,a.css=v=1asd2j,b.css还是b.css?v=65ao1j。

5.很多企业,现在都静态文件cdn部署了,类似于http://static.cdn.com/css/a.css?v=0abc23,与页面分开部署了,

  a.如果先部署页面,再部署资源:在二者部署的时间间隔内,如果有用户访问页面,就会在新的页面结构中加载旧的资源,并且把这个旧版本的资源当做新版本缓存起来,其结果就是:用户访问到了一个样式错乱的页面,除非手动刷新,否则在资源缓存过期之前,页面会一直执行错误。

  b.如果先部署资源,再部署页面:

在部署时间间隔之内,有旧版本资源本地缓存的用户访问网站,由于请求的页面是旧版本的,资源引用没有改变,浏览器将直接使用本地缓存,这种情况下页面展现正常;但没有本地缓存或者缓存过期的用户访问网站,就会出现旧版本页面加载新版本资源的情况,导致页面执行错误,但当页面完成部署,这部分用户再次访问页面又会恢复正常了。

解决方法:改变命名方式,改成a_0abc23.css,上线的时候先部署静态资源,再部署页面。

时间: 2024-10-08 23:21:13

如何高效部署前端代码,如css,js...的相关文章

通过nginx部署前端代码实现前后端分离

实现前后端分离,可以让前后端独立开发.独立部署.独立单测,双方通过JSON进行数据交互. 对于前端开发人员来说,不用每次调试都需要启动或配置Java/Tomcat运行环境:对于后端开发人员来说 ,也不用在需要往JSP页面注入数据. 通过nginx来部署前端代码,可以帮助前端实现以下基本需求: 1.请求转发,解决请求跨域的问题 server { listen       7777; location /{ root   /Users/xiaoyun/git/someproject/dist; }

大公司里开发部署前端代码

作者:张云龙链接:https://www.zhihu.com/question/20790576/answer/32602154来源:知乎著作权归作者所有,转载请联系作者获得授权. 前百度工程师,曾负责百度 前端集成解决方案 的核心设计与开发工作.我现在称这个领域为[前端工程].没错,这是我最爱唠叨的问题域. 这是一个非常有趣的 非主流前端领域,这个领域要探索的是如何用工程手段解决前端开发和部署优化的综合问题,入行到现在一直在学习和实践中. 在我的印象中,facebook是这个领域的鼻祖,有兴趣

大公司里怎样开发和部署前端代码

作者:张云龙链接:https://www.zhihu.com/question/20790576/answer/32602154来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 没人邀请,看到这个问题不错,路过怒答.(多图预警) 前百度工程师,曾负责百度 前端集成解决方案 的核心设计与开发工作.我现在称这个领域为[前端工程].没错,这是我最爱唠叨的问题域. 这是一个非常有趣的 非主流前端领域,这个领域要探索的是如何用工程手段解决前端开发和部署优化的综合问题,入行到现

大公司里怎样开发和部署前端代码?

作者:张云龙链接:http://www.zhihu.com/question/20790576/answer/32602154来源:知乎著作权归作者所有,转载请联系作者获得授权. 在我的印象中,facebook是这个领域的鼻祖,有兴趣.有梯子的同学可以去看看facebook的页面源代码,体会一下什么叫工程化. 接下来,我想从原理展开讲述,多图,较长,希望能有耐心看完. ---------------------------- 我是一条分割线 ---------------------------

大型公司里如何开发和部署前端代码

这是一个非常有趣的 非主流前端领域,这个领域要探索的是如何用工程手段解决前端开发和部署优化的综合问题,入行到现在一直在学习和实践中. 在我的印象中,facebook是这个领域的鼻祖,有兴趣.有梯子的同学可以去看看facebook的页面源代码,体会一下什么叫工程化. 接下来,我想从原理展开讲述,多图,较长,希望能有耐心看完. ---------------------------- 我是一条分割线 ---------------------------- 让我们返璞归真,从原始的前端开发讲起.上图

大公司怎么开发和部署前端代码——作者:张云龙[知乎兴趣转载]

前百度工程师,曾负责百度 前端集成解决方案 的核心设计与开发工作.我现在称这个领域为[前端工程].没错,这是我最爱唠叨的问题域. 这是一个非常有趣的 非主流前端领域,这个领域要探索的是如何用工程手段解决前端开发和部署优化的综合问题,入行到现在一直在学习和实践中. 在我的印象中,facebook是这个领域的鼻祖,有兴趣.有梯子的同学可以去看看facebook的页面源代码,体会一下什么叫工程化. 接下来,我想从原理展开讲述,多图,较长,希望能有耐心看完. ----------------------

web前端开发分享-css,js工具篇

来源:http://www.cnblogs.com/jikey/p/3607133.html web前端开发乃及其它的相关开发,推荐sublime text, webstorm(jetbrains公司系列产品)这两个的原因在于,有个技术叫emmet, http://docs.emmet.io,而这两个对他的支持是: sublime text 是所有编辑器里边支持emmet比较好的的唯一一款. webstorm是所有编辑器里边唯一内置emmet的一款,并且将emmet的精神往前推动的一款. php

前端学习html css js

html 第一章 :HTML模板 HTML是什么(超文本标记语言) HTML网页主体结构 doctype标签 head标签 meat标签 title标签 body标签 第二章:HTML标题 h1标题标签 h2标题标签 h3标题标签 h4标题标签 h5标题标签 h6标题标签 hr水平线标签 第三章:HTML 段落 p段落标签 br换行标签 第四章:HTML 样式 center定义居中内容 font和basefont定义HTML字体 s和strike定义删除线文本 u定义下划线文本 第五章:HTML

前端(HTML/CSS/JS)-HTML编码规范

一.HTML编码规范 1. img标签要写alt属性 根据W3C标准,img标签要写alt属性,如果没有就写一个空的.但是一般要写一个有内容的,根据图片想要表达的意思,因为alt是在图片无法加载时显示的文字 如下不太好的写法: <img src="company-logo.svg" alt="ABC Company Logo"> 更好的写法: <img src="chime-logo.svg" alt="ABC Com