- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用以下命令向我的应用程序添加了一个服务 worker :
ng add @angular/pwa --project ng-zero
它在终端中回应了这个:
Installed packages for tooling via npm.
CREATE ngsw-config.json (441 bytes)
CREATE src/manifest.json (1071 bytes)
CREATE src/assets/icons/icon-128x128.png (1253 bytes)
CREATE src/assets/icons/icon-144x144.png (1394 bytes)
CREATE src/assets/icons/icon-152x152.png (1427 bytes)
CREATE src/assets/icons/icon-192x192.png (1790 bytes)
CREATE src/assets/icons/icon-384x384.png (3557 bytes)
CREATE src/assets/icons/icon-512x512.png (5008 bytes)
CREATE src/assets/icons/icon-72x72.png (792 bytes)
CREATE src/assets/icons/icon-96x96.png (958 bytes)
UPDATE angular.json (3825 bytes)
UPDATE package.json (1985 bytes)
UPDATE src/app/app.module.ts (2042 bytes)
UPDATE src/index.html (851 bytes)
没有错误,只有一些警告。
app.module.ts
文件现在包含:
import { ServiceWorkerModule } from '@angular/service-worker';
...
imports: [
ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }),
而且我还没有触及ngsw-config.json
配置文件:
{
"index": "/index.html",
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/favicon.ico",
"/index.html",
"/*.css",
"/*.js"
]
}
}, {
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"resources": {
"files": [
"/assets/**"
]
}
}
]
}
我的 main.ts
文件包含以下内容:
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule)
.then(
() => {
}
)
.catch(error => {
console.log(error);
});
和 index.html
文件:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>NgZero</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
<link rel="manifest" href="manifest.json">
<meta name="theme-color" content="#1976d2">
</head>
<body class="mat-app-background">
<app-root>Loading...</app-root>
<noscript>Please enable JavaScript to continue using this application.</noscript>
</body>
</html>
文档根目录下的文件:
$ ll ng-zero/
total 1,2M
-rw-rw-r-- 1 stephane 42K oct. 18 13:20 3rdpartylicenses.txt
-rw-rw-r-- 1 stephane 14K oct. 18 13:20 4.c1db20ef5bd9add4749b.js
drwxrwxr-x 3 stephane 4,0K oct. 18 13:20 assets/
-rw-rw-r-- 1 stephane 5,4K oct. 18 13:20 favicon.ico
-rw-rw-r-- 1 stephane 993 oct. 18 13:20 index.html
-rw-rw-r-- 1 stephane 847K oct. 18 13:20 main.07ca5763aa8c2813b8c7.js
-rw-rw-r-- 1 stephane 1,1K oct. 18 13:20 manifest.json
-rw-rw-r-- 1 stephane 3,2K oct. 18 13:20 ngsw.json
-rw-rw-r-- 1 stephane 132K oct. 18 13:20 ngsw-worker.js
-rw-rw-r-- 1 stephane 58K oct. 18 13:20 polyfills.eba1d61bda8f41298ad5.js
-rw-rw-r-- 1 stephane 2,2K oct. 18 13:20 runtime.fa8fa8286609c1c01b2a.js
-rw-rw-r-- 1 stephane 519 oct. 18 13:20 safety-worker.js
-rw-rw-r-- 1 stephane 63K oct. 18 13:20 styles.f57681079a43921c301b.css
-rw-rw-r-- 1 stephane 519 oct. 18 13:20 worker-basic.min.js
然后我访问了这个网页 https://angular.io/guide/service-worker-getting-started
并且可以成功完成所有练习,从而看到 service worker 正在做它的工作离线时。
我还在 app.component.ts
文件中添加了这段源代码,我可以看到它在移动浏览器中运行良好,因为它让我加载了更新的版本:
ngOnInit() {
if (this.swUpdate.isEnabled) {
this.swUpdate.available.subscribe(() => {
if (confirm('A newer version of the application is available. Load the new version ?')) {
window.location.reload();
}
});
}
}
但是当我打开 Chrome 浏览器控制台时,转到 Application
选项卡,选择 Manifest
条目,然后单击 Add to homescreen
链接,控制台显示以下错误:无法安装站点:未检测到匹配的服务 worker 。您可能需要重新加载页面,或检查当前页面的服务 worker 是否也控制 list 中的起始 URL
在manifest.json
文件中,start_url
值为/
"start_url": "/"
然后我将 start_url
值更改为 https://stephaneeybert.github.io/stephaneeybert/ng-zero/
并重新部署,但它提示 https://stephaneeybert.github.io/stephaneeybert/ng-zero/manifest.json
未找到 (404)。
这是我构建应用程序的方式:
ng build --prod --base-href /stephaneeybert/ng-zero/
应用部署在https://stephaneeybert.github.io/stephaneeybert/ng-zero/
我在 "@angular/cli": "^7.0.0-rc.2"
和 "@angular/core": "^7.0.0-rc.2"上。 0"
最佳答案
我刚刚在这个 URL ( https://stephaneeybert.github.io/stephaneeybert/ng-zero/) 测试了应用
看起来效果不错。
在安装了 Service Worker 的情况下测试 Angular 应用时,您需要注意以下几点:
如果你还没有,我建议你阅读更多关于 service worker 的操作以及 service worker 如何在 angular 中工作。
谢谢
关于angular - 未检测到匹配的服务 worker ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52872761/
我正在尝试在项目中学习和添加 Angular 国际化。我只能理解 Angular 文档 (https://angular.io/guide/i18n-overview) 的编译时翻译。 我需要这样的东
在我的 Angular 应用程序中,基于登录用户,我想通过显示/隐藏不同的菜单项或允许/禁止某些路由来授予或限制功能。 目前成功登录后,我的 .NET Core API 会返回一个 JWT token
我是 Angular 的新手,目前我已经看过 angular.io 网站提供的一些示例。但是在component decorator在文档中的解释,它指出 Angular components are
这里是service employee-service.service.ts的代码 import { Injectable } from '@angular/core'; import { HttpC
我目前正在使用@angular/http URLSearchParams 类来检索 URL 参数。在 Angular 5 中,注意到这已被弃用,但我没有看到以我当前使用的方式替换 URLSearchP
我目前正在使用@angular/http URLSearchParams 类来检索 URL 参数。在 Angular 5 中,注意到这已被弃用,但我没有看到以我当前使用的方式替换 URLSearchP
如何正确安装 PUG/JADE 到 Angular 2 或更高版本 这样在工作和 AOT 和 JiT 的同时 工作单元和集成测试 并且在创建每个新组件时不会受到太多影响 最佳答案 我看到了很多解决方案
我的 Angular 12 应用程序中有一些通用组件,我计划将其创建为一个 Angular 库,以便其他应用程序也可以使用它。我们有一些应用程序在较低版本的 angular(例如 angular 8/
tl;dr; ng build 删除了包含我编译的自定义库的/dist 文件夹。这会使我项目代码中对该库的所有引用无效,从而导致 ng build 最终失败。我做错了什么? 我关注了documenta
我正在将一些“遗留”(非 typescript )js 库导入到我的 Angular SPA 中。 通常我只是从 cdn 添加一个负载到 index.html 就像: 在 Angular 分量中我只
我有这个 angular 应用程序,它基本上使用了库的概念。 我有 2 个名为 的库Lib1 和 lib2 根据他们所服务的微服务分组。 现在我将这些库导入主应用程序,即 应用1 事情一直到现在。 现
我在我的项目中启用了 angular Universal。我现在想完全删除它。我试图删除以下文件 /server.ts /webpack.server.config.js /src/tsconfig.
我已经有一个 AuthService 在登录时对用户进行身份验证,并且 AuthGuard 在未登录的情况下阻止访问。 某些页面我通过 UserProfile/Role 限制访问,但现在我需要阻止页面
我正在尝试使用 angular、TypeORM、SQLite 和其他组件作为 webpack 构建 Electron 应用程序。 我从在 GitHub 上找到的示例开始我的开发:https://git
我在从 Angular 8 更新到 9 并运行时遇到以下错误 ng 更新@angular/material: Package "@angular/flex-layout" has an incompa
我正在尝试使用 Angular 9,我想创建一个项目,然后创建一个库项目并开始向其中添加我想稍后在 GitHub 上发布的通用模块,并在我的本地使用这些库项目。 相关依赖如下: Angular CLI
我正在尝试使用 Angular 9,我想创建一个项目,然后创建一个库项目并开始向其中添加我想稍后在 GitHub 上发布的通用模块,并在我的本地使用这些库项目。 相关依赖如下: Angular CLI
我正在我的 h1 元素“之前”创建一个小的程式化三 Angular 形图案,但我无法正确地圆 Angular 。右上角没问题,但其他两个有剪裁问题。 这是输出以及形状的放大图像: 使用的代码如下: h
我有一个 Angular 元素,带有自定义标记名 - fancy-button。如何将 fancy-button 嵌入 Angular 应用程序? 我已经尝试了以下方法,但都没有用 - 在 index
我已将我的项目从 angular 5.2.9 升级到 angular 6.0.0-rc.5。 除了包路径中的几个快速 RxJS 修复外,一切看起来都不错。(此链接非常有用:Want to upgrad
我是一名优秀的程序员,十分优秀!