首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为Angular PWA运行http-server后,Localhost抛出无效响应

基础概念

Progressive Web App (PWA) 是一种结合了网页应用和原生应用优点的现代Web应用。它通过Service Worker提供离线支持、推送通知和背景数据同步等功能。Angular PWA是基于Angular框架构建的PWA应用。

问题描述

当你使用http-server运行Angular PWA时,如果在Localhost上遇到“无效响应”的错误,可能是由于以下几个原因:

  1. Service Worker配置问题:Service Worker可能没有正确注册或激活。
  2. 缓存问题:浏览器缓存可能导致旧的Service Worker文件被使用。
  3. 服务器配置问题http-server可能没有正确配置以支持PWA。

解决方法

1. 检查Service Worker注册

确保你的Angular应用正确注册了Service Worker。通常在app.module.ts中会有如下配置:

代码语言:txt
复制
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { ServiceWorkerModule } from '@angular/service-worker';
import { environment } from '../environments/environment';

@NgModule({
  declarations: [
    // 你的组件
  ],
  imports: [
    BrowserModule,
    ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production })
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

确保environment.production在生产环境中为true,这样Service Worker才会被注册。

2. 清除缓存

有时浏览器缓存可能导致旧的Service Worker文件被使用。你可以尝试清除浏览器缓存或使用无痕模式来运行你的应用。

3. 配置http-server

确保你使用的http-server版本支持PWA。你可以通过以下命令安装最新版本的http-server

代码语言:txt
复制
npm install -g http-server

然后,在项目根目录下运行:

代码语言:txt
复制
http-server -p 8080

确保你的ngsw-worker.js文件在项目的根目录下。

4. 检查网络请求

打开浏览器的开发者工具(F12),查看网络请求部分,确保所有的资源文件都能正确加载,特别是ngsw-worker.js文件。

示例代码

假设你的项目结构如下:

代码语言:txt
复制
my-angular-pwa/
├── src/
│   ├── app/
│   ├── environments/
│   ├── ngsw-worker.js
├── dist/

确保ngsw-worker.js文件在dist目录下,因为生产构建的输出目录通常是dist

参考链接

通过以上步骤,你应该能够解决http-server运行Angular PWA时遇到的“无效响应”问题。如果问题仍然存在,请检查控制台和网络请求中的详细错误信息,以便进一步诊断问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PWA 入门: 写个非常简单的 PWA 页面

完整代码访问GitHub地址: https://github.com/minimal-xyz/minimal-pwa 准备工作 建议安装 http-server 和 ngrok 以便调试和查看。...然后在 HTML 文件当中引入配置: 添加 Service Worker Service Worker 在网页已经关闭的情况下还可以运行, 用来实现页面的缓存和离线, 后台通知等等功能。...处理动态缓存 网页抓取资源的过程中, 在 Service Worker 可以捕获到 fetch 事件, 可以编写代码决定如何响应资源的请求: 真实的项目当中, 可以根据资源的类型, 站点的特点, 可以专门设计复杂的策略...更新静态资源 缓存的资源随着版本的更新会过期, 所以会根据缓存的字符串名称(这里变量 cacheStorageKey, 值用了 "minimal-pwa-1")清除旧缓存, 可以遍历所有的缓存名称逐一判断决决定是否清除...注意: Demo 当中如果直接启动 http-server 而不使用 -c-1 关闭缓存, sw.js 可能被缓存住, 导致更新方案失败。

2.7K50
  • 它比微信小程序早出现半年,却不曾引爆技术圈|TW洞见

    你看过一个网址再回来的概率大约是本地应用的1/3。...本地应用可以推送通知,而Web应用只有在浏览器打开状态下才行 本地应用可以离线使用,只要做适当的设计就可以不受网络环境的影响 本地应用可以访问更加丰富的功能,比如更大的本地存储空间 那么,它们能否合二一呢...特别是得益于Angular等SPA应用的普及,SPA不但响应更加快速,更加接近原生应用的操作体验,而且让我们可以完全不依赖服务器工作。...这是一个更强大的AppCache,它不仅能存储HTML/JS等静态文件,而且还让你能够在客户设备上运行起一个仿真的超轻量级Web服务器,你在里面已经几乎可以写Node程序了!...如果用Angular 2就更幸福了,因为Angular 2还制作了一个Angular 2专用的壳:https://github.com/angular/mobile-toolkit。

    1.1K80

    创建API服务最小只要4行代码!!!尝新体验ASP.NET Core 6预览版本中的最小Web API(minimal APIS)新特性

    几天前(美国时间2021年8月10日),微软官方发布了.NET 6的第7个预览版,其中包含了很多新的特性和功能,比如: 优化最小Web API(minimal APIS)模板 为生成常用HTTP响应添加了...Blazor WebAssembly App blazorwasm [C#] Web/Blazor/WebAssembly/PWA...; app.Run(); 为了不启用https,我们修改一下位于Properties目录中的launchSettings.json配置文件,修改如下: { "iisSettings": {...summary> app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "Api v1")); app.Run(); 运行的...码友网将在后续的文章中大家分享的关于最小Web API的其他功能和特性,敬请关注。

    5.1K30

    天人合一物我相融,站点升级渐进式Web应用PWA(Progressive Web Apps)实践

    的形式运行,但相比于安装原生APP应用,访问PWA显然更加容易和迅速,还可以通过链接来分享PWA应用。    ...https://www.pwastats.com 这个网站上分享了许多案例研究,PWA相比于传统应用有以下好处:     1、减少应用安装的加载时间,通过 Service Workers 来进行缓存,...HTTPS服务     首先PWA要求站点的请求方式HTTPS,如果是生产环境,可以通过为Nginx服务器配置SSL的方式进行适配,但是线下环境测试PWA时就有点费劲了,所以通过openssl工具本地域名...,第一次访问页面,Service Worker就会安装激活并持续运行,直到手动销毁。    ...结语     渐进式增强和响应式设计已经可以让我们构建对移动端非常友好的站点,而PWA则又在我们的身后轻轻地推了一把,黄河之水源可滥觞,星星之火正在燎原,一年以内,我们都将感到PWA的灼人温度。

    73520

    超详细动手搭建一个Vuepress站点及开启PWA与自动部署

    Vuepress特点 响应式,也可以自定义主题与hexo类似 内置markdown(还增加了一些扩展),并且可以在其使用Vue组件 Google Analytics 集成 PWA 自动生成Service...,直接去docs文件下书写文章就可以,打开http://localhost:8080/可以预览 [99a97bd9ly1fr1lnlowflj20kp0b5aap.jpg] 构建 build生成静态的HTML...设置 设置serviceWorkertrue,然后提供Manifest 和 icons,可以参考我之前的《PWA介绍及快速上手搭建一个PWA应用》 module.exports = { head:.../usr/bin/env sh # 确保脚本抛出遇到的错误 set -e # 生成静态文件 npm run docs:build # 进入生成的文件夹 cd docs/.vuepress/dist...记得修改base路径 设置侧边栏分组默认会自动生成 上/下一篇链接 设置了自动生成侧边栏会把侧边栏分组覆盖掉 设置PWA记得开启SSL

    2.4K60

    Localhost如何使用HTTPS?

    因此,部分无法在部署的 HTTP 网站上运行的 API 可以在 http://localhost运行。...因此,当你看到http://localhost时,请将其理解http://localhost:{PORT}或 http://127.0.0.1:{PORT}。...在看到证书已由 mkcert 生成的证书颁发机构签名,浏览器会检查它是否已注册受信任的证书颁发机构。 mkcert 已被列为受信任的颁发机构,所以浏览器会信任该证书并创建 HTTPS 连接。...react-scripts start" ‍ 其他例子: Angular 开发服务器 Python ✨全部搞定!...这表示实际的证书颁发机构 无法 用于: localhost 和其他保留域名,例如 example 或 test 。 您无法控制的任何域名。 无效的顶级域。请参阅有效顶级域的列表。

    10.9K93

    AngularDart4.0 高级-部署 顶

    使用pub build进行编译 应用程序创建一个可扩展的版本, 使用pub build命令....如果应用程序在检查模式下使用dart2js中或在dartdevc模式下运行, 那么我们推荐使用--trust-type-annotations....如果某条代码路径没有经过测试, 应用程序能在dartdevc下运行,使用dart2js编译时出现不正确的行为....让应用程序更快、更小、更稳定 下面的步骤是可选的,但这些能增强应用程序的稳定性和响应能力....使用 pwa 包使应用程序能离线工作 使用缓存加载降低程序初始加载大小 遵循Web应用程序最佳实践 移除不需要的构建文件 使用 pwa 包使应用程序能离线工作 pwa包简化使应用程序功能有限或不需连接的工作

    4.6K10

    Angular 6正式版发布,都有哪些新功能

    Angular 5发布半年之后,Angular 6在昨天正式发布,那么在这个版本有哪些新功能呢?新版本重点关注工具链以及工具链在 Angular 中的运行速度问题。...你可在新的ng new应用程序中尝试以下动作: ng add @angular/pwa:添加一个 app manifest 和 service worker,将你的应用程序变成 PWA。...应用程序中启动 Angular 组件,方法是将它们注册 Custom Elements,目前已被广泛用于 angular.io 内容管理系统中,它嵌入 HTML,可动态启动系统功能。...Material Sidenav Material Sidenav 是带有应用程序名称和侧面导航的工具栏的初始组件,它基于断点窗口(breakpoints)进行响应。...class MyService { constructor() { } } 动画性能提升 更新,以后将不再需要网页动画 polyfill。

    4.2K20

    超详细动手搭建一个Vuepress站点及开启PWA与自动部署

    Vuepress特点 响应式,也可以自定义主题与hexo类似 内置markdown(还增加了一些扩展),并且可以在其使用Vue组件 Google Analytics 集成 PWA 自动生成Service...dev docs", "docs:build": "vuepress build docs" } } 写作 yarn docs:dev # 或者:npm run docs:dev 也就是运行开发环境...,直接去docs文件下书写文章就可以,打开http://localhost:8080/可以预览 ?.../usr/bin/env sh # 确保脚本抛出遇到的错误 set -e # 生成静态文件 npm run docs:build # 进入生成的文件夹 cd docs/.vuepress/dist...记得修改base路径 设置侧边栏分组默认会自动生成 上/下一篇链接 设置了自动生成侧边栏会把侧边栏分组覆盖掉 设置PWA记得开启SSL

    77240

    用Go语言建立http-server响应对JSON数据对象进行编码与解码

    摘要 本文将演示如何使用Go语言中encoding/json package,结合建立一台http-server响应对JSON数据对象进行编码与解码的操作。...作为新的数据交换格式,因为主流的浏览器使用了通用的JavaScript引擎组件,所以在解析这种新数据格式时就不存在兼容性问题,于是他们将这种数据格式命名为 “JavaScript Object Notation”,缩写...来自:新消息频道 正文 配置Go语言运行环境 cp /share/tar/go1.12.9.linux-amd64.tar.gz ....go run json.go & curl -s -X POST -d '{"firstname":"Elon","lastname":"Mars","age":48}' http://localhost.../decode curl -s http://localhost/encode 完结 以上就是用Go语言建立http-server响应对JSON数据对象进行编码与解码的所有内容,欢迎小伙伴们交流讨论。

    1.7K20

    2018 最值得关注的前端技术

    2.PWA PWA(Progressive Web Apps)由谷歌提出,用前沿的技术开发,让网页使用如同App般的体验的一系列方案。...明确的一点就是:PWA就是一个网页, 可以通过前沿的技术开发出一个网页应用。 自从谷歌提出PWA,就持续的获得了业界的关注,热度可见一斑。...它的缩写是".wasm",.wasm 文件名后缀,是一种新的底层安全的二进制语法。。它被定义“精简、加载时间短的格式和执行模型”,并且被设计Web 多编程语言目标文件格式。...引用官网的说法:RxJS 是使用 Observables 的响应式编程的库,它使编写异步或基于回调的代码更容易。...也尝试了几个官方的实例,运行很流畅,只是因为暂时不开发桌面应用,所以没怎么关注,也没学习过。2018年依然关注,甚至会学习开发!

    1.1K31

    2018前端最值得关注的技术有哪些?

    PWA PWA(Progressive Web Apps)由谷歌提出,用前沿的技术开发,让网页使用如同App般的体验的一系列方案。...明确的一点就是:PWA就是一个网页, 可以通过前沿的技术开发出一个网页应用。 自从谷歌提出PWA,就持续的获得了业界的关注,热度可见一斑。...它的缩写是".wasm",.wasm 文件名后缀,是一种新的底层安全的二进制语法。。它被定义“精简、加载时间短的格式和执行模型”,并且被设计Web 多编程语言目标文件格式。...引用官网的说法:RxJS 是使用 Observables 的响应式编程的库,它使编写异步或基于回调的代码更容易。...也尝试了几个官方的实例,运行很流畅,只是因为暂时不开发桌面应用,所以没怎么关注,也没学习过。2018年依然关注,甚至会学习开发!

    1.1K20

    安卓开发方式的进化之路

    做安卓时间长了,接触到各种各样的框架,前前后遇到了很多问题,这里顺便记录一下那些年在安卓开发的发展过程中的那些跨平台开发技术框架,大致如下: 如有错误,欢迎指正。...漂亮的界面,追求性能,专注原生,免费开源 Angular JS MVVM 开发理念,数据双向绑定 基于Cordova,可以使用 Cordova 的插件 缺点: 需要掌握 HTML + CSS...关于PWA更多详情介绍可以看以下博客介绍: https://segmentfault.com/a/1190000012353473 PWA的优势 可以将app的快捷方式放置到桌面上,全屏运行...,与原生app无异 能够在各种网络环境下使用,包括网络差和断网条件下,不会显示undefind 推送消息的能力 其本质是一个网页,没有原生app的各种启动条件,快速响应用户指令 PWA存在的问题...它可在用户没有下载、安装 App的前提下,直接加载App 的部分模组,并直接运行、使用,无需下载、安装整个App。

    1.4K40

    2019年度十大Web开发趋势 - 51CTO.COM

    而在PWA中,经常被用到的技术有:Angular、Polymer和React。...作为比较,那些需要加载22秒钟的普通Web页面,经过AMP转化,可以缩短到2秒钟左右。有了加载速度与时间上的优势,用户自然会更乐意浏览企业的网站。...同时,它也更易于构建网站的响应页面。 常见的SPA例子包括:Gmail、脸书、以及GitHub。而在SPA中常用到的技术有:React和特别适合于混合应用的Angular框架。...JavaScript用户开发动态的Web应用程序提供了灵活、强大且全新的体验。通过JavaScript,开发人员能够构建出精准、稳定且具有快速响应能力的网站。...上文提到的Angular和React都是基于JavaScript的框架与类库。随着JavaScript框架在Web开发领域的广泛使用,它将在未来的几年内Web开发人员带来更多的新功能。

    66430
    领券