首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >服务人员:如何为每个新部署构建“新鲜”版本的网站?

服务人员:如何为每个新部署构建“新鲜”版本的网站?
EN

Stack Overflow用户
提问于 2016-11-05 20:52:21
回答 1查看 1.3K关注 0票数 5

问题

我在生产中遇到了一个网站(构建的w/ 聚合物车间模板)的问题,尽管我的新部署和改进了的部署,它仍然在为旧版本的代码提供服务。

我使用Polymer $ polymer build命令沿w/ Firebase Tools $ firebase deploy命令将更改推到Firebase宿主。部署完成后,我导航到网站,只会看到未更新的更改:

  • Chrome:我首先看到的是网站的旧版本,必须“硬刷新”才能出现更改。
  • FireFox: --我首先看到的是网站的旧版本,必须“硬刷新”才能出现更改。

以下是拍摄前n‘之后的照片:

服务工作流程?

我想弄清楚什么是最好的工作流程。我想设置好这样,每次我进行新的部署时,整个站点都被清除干净,服务人员通过网际网重新设置自己,我将100%地确定现有用户将获得新部署的体验。

无需硬刷新或使用隐名模式。

我该不该..。

  • 删除服务工作人员并在没有它的情况下部署新版本(坏主意)?
  • 在Firebase控制台中创建一个“新项目”,并将自定义域重新链接起来(乏味)?
  • 找到“魔术按钮”按在Firebase控制台内重置(这是否存在)?
  • 编辑sw-precache-config.js文件(不确定如何编辑)?
  • $ polymer build中处理此操作以配置sw-precache (不确定如何配置)?
  • 一些根本不知道¯\_(ツ)_/¯的东西?

我知道sw-precache-config.js文件中存在问题,但我不确定这是否应该修复这个问题。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports = {
  staticFileGlobs: [
    '/index.html',
    '/manifest.json',
    '/bower_components/webcomponentsjs/webcomponents-lite.min.js',
    '/images/*'
  ],
  navigateFallback: '/index.html',
  navigateFallbackWhitelist: [/^(?!.*\.html$|\/data\/).*/],
  runtimeCaching: [
    {
      urlPattern: /\/data\/images\/.*/,
      handler: 'cacheFirst',
      options: {
        cache: {
          maxEntries: 200,
          name: 'items-cache'
        }
      }
    },
    {
      urlPattern: /\/data\/.*json/,
      handler: 'fastest',
      options: {
        cache: {
          maxEntries: 100,
          name: 'data-cache'
        }
      }
    }
  ]
};

服务人员是一个了不起的工具,我绝对希望它在我的项目。我只需要学习如何驯服野兽。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-05 21:55:12

我不知道聚合物,但这是我通常做的服务人员的流程。

  • 在客户端,我检查是否有更新,应用程序通知用户,如果他/她想更新。
  • 用户接受新版本,然后客户端向skipWating发送消息到sw。 client.js:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
navigator.serviceWorker.register('/serviceWorker.js').then(function(reg) {
    reg.addEventListener('updatefound', function() {

      reg.installing.addEventListener('statechange', function() {

        if (reg.installing.state == 'installed') {
          // Notify the user, there is a app new version.
          // User accept
           reg.installing.postMessage({msg: 'skipwaiting'});
        }
      });
    });
});

-In --如果用户接受新版本,服务工作者将侦听消息、和skipWating。

serviceWorker.js:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
self.addEventListener('message', function(event) {
  if (event.data.msg === 'skipwaiting') {
    self.skipWaiting();
  }
});

客户端在服务工作人员具有更改状态后刷新应用程序。client.js:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let refreshing;

navigator.serviceWorker.addEventListener('controllerchange', function() {
    if (refreshing) 
    return;
    window.location.reload();
    refreshing = true;
});

也许这能给你个主意。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40446098

复制
相关文章
带你了解C#每个版本新特性
上学时学习C#和.NET,当时网上的资源不像现在这样丰富,所以去电脑城买了张盗版的VS2005的光盘,安装时才发现是VS2003,当时有一种被坑的感觉,但也正是如此,让我有了一个完整的.NET的学习生涯。
oec2003
2019/07/19
3.5K0
如何为你的应用程序或网站快速构建一个搜索界面
直观的搜索界面对于任何出色的在线体验都至关重要。但很多时候, 它们可能需要花费大量的精力来建造并保持
点火三周
2022/05/06
1.5K0
如何为你的应用程序或网站快速构建一个搜索界面
如何为稳定的云堆栈构建基础?
在我们完成云堆栈的构建工作——即实现平台即服务(简称PaaS)、规模化容器乃至开发工具集中的各类工具选项——之前,我们首先需要建立良好的操作系统基础以支持这些容器系统。 对于云堆栈而言,良好的基础应当
静一
2018/03/26
1.1K0
如何为稳定的云堆栈构建基础?
如何为自己的网站规划内容图谱
Content Mapping,翻译为内容映射也好,或者理解为内容图谱,实际上是一种帮助我们组织和理解网站所包含内容的数据可视化技术。这项简单的技术在我们的网站内容策略方面可以发挥非常有价值的作用,下面谈一谈如何应用这项技术。
大江小浪
2018/07/25
1.6K0
如何为自己的网站规划内容图谱
WordPress网站底部的自定页面(如:网站地图等)按钮美化教程
最近浏览博客,看到不少朋友这个底部的美化,我也觉得底部的这些按钮平平无奇,就想着用css设置一个样式,从而美化按钮方法,至此分享给大家。
文曦
2022/06/09
1K0
WordPress网站底部的自定页面(如:网站地图等)按钮美化教程
R沟通|Rmarkdown构建简历并部署到个人网站
上一期已经对使用 latex 模板构建 cv 做了较为详细的说明:R沟通|使用latex模板构建个人履历。但是存在一个问题:Latex 最后输出的是 pdf 版本,如果你想把他部署到自己的个人网站上,可能就比较费劲了(害,是我不会)。所以请教了李康国学弟之后,我又尝试了下使用 Rmarkdown 构建 cv 并将其部署到 gitee中,这样所有人都可以通过网址访问我的 cv 了。
庄闪闪
2021/04/26
1.4K0
R沟通|Rmarkdown构建简历并部署到个人网站
如何为你的企业选择正确的Hadoop版本
由于Hadoop还处于初期高速发展的节点,加上它又是开源的,因此它的版本一直很混乱,Hadoop一些主要的特性有:
星哥玩云
2022/07/01
7650
如何为你的企业选择正确的Hadoop版本
【译】HTTP/2:更短的页面加载时间更好的搜索引擎排名
HTTP/2:如今,Google、Youtube、Facebook等很多大型网站都已经使用了 HTTP/2,很多人都知道 HTTP/2,也就不足为奇了。
腾讯IVWEB团队
2020/06/28
3520
前端新的构建范式
前端的交付基于浏览器,资源是通过增量加载的方式运行到浏览器端,如何在开发环境组织好这些碎片化的代码和资源,并且保证他们在浏览器端快速、优雅的加载和更新,是前端发展中一直探索的难题。
奋飛
2021/09/30
7780
前端新的构建范式
检查网站的TLS版本
有时候需要知道某个网站支持的TLS的版本。现在SSL 2.0和SSL 3.0都已经被淘汰了。其中TLS 1.0,TLS 1.1,TLS 1.2是目前的的主流,相对也是安全的。主要看加密的算法。TLS 1.3是目前最新的协议版本,也是相对最安全的版本了。
宋天伦
2023/10/21
4.4K0
检查网站的TLS版本
前端新的构建范式
前端的交付基于浏览器,资源是通过增量加载的方式运行到浏览器端,如何在开发环境组织好这些碎片化的代码和资源,并且保证他们在浏览器端快速、优雅的加载和更新,是前端发展中一直探索的难题。
奋飛
2021/12/30
6380
前端新的构建范式
疯长的新零售,何为正确的飞翔姿势?
新零售行业的发展正在进入到一个全新的发展阶段。这是人们之所以感觉新零售销声匿迹的根本原因所在。对于当下的新零售来讲,真正决定它的发展的不是资本是否雄厚,而是能否真正将新零售进行落地。以智慧物流、大数据赋能、无人超市为代表的新零售元素的出现,正是这种现象的直接体现。
孟永辉
2020/05/18
1920
疯长的新零售,何为正确的飞翔姿势?
【玩转腾讯云】三.云端轻松构建部署WordPress网站应用
②选择自定义配置——计费模式为“按量付费”——地域选择“北京”——可用区选择“随机可用区”——网络选择“默认”即可
一只特立独行的兔先生
2020/04/02
5.5K0
【玩转腾讯云】三.云端轻松构建部署WordPress网站应用
Docker部署_docker部署网站
我们都爱用 WordPress,(几乎)一行代码都不用写,就能得到一个好看、实用的动态网站。
全栈程序员站长
2022/11/17
9140
Docker部署_docker部署网站
GitPages部署自己的网站
该文章主要为了记录我如何在GitPages上面部署博客网站,这里的话,码云上面也有相同的功能。 若有小伙伴担心GitHub担心把中国的访问也禁了的话(大概不会吧),可以在码云上面部署。流程应该是差不多的。 因为我使用的域名是.cn后缀,所以部署到GitHub上面就不用备案了。码云是国内的,应该要备案了,这个就看各位小伙伴的选择了。 可以看看我的网站:
Johnson木木
2021/12/24
1.5K0
GitPages部署自己的网站
如何为Tensorflow构建自定义数据集
Tensorflow激发开发人员在几乎任何想到的领域中尝试他们令人兴奋的AI创意。ML社区中有三个众所周知的因素构成了一个好的深度神经网络模型做了一些神奇的事情。
代码医生工作室
2019/06/21
1.9K0
如何为Tensorflow构建自定义数据集
maven的profile配置多种部署环境(如开发、测试、生产等)
用Maven的小伙伴都知道,Maven的宗旨是约定优于配置(Convention Over Configuration)。
青山师
2023/05/04
8580
点击加载更多

相似问题

木偶-识别新的构建版本并部署

11

如何为不同的构建配置部署不同版本的文件?

31

为每个新构建部署aws sam LambdaLayer

16

无法部署新的SharePoint网站模板程序集版本

33

Gradle -如何为每个版本指定不同的Android *.apk构建位置?

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文