问题描述
我的angular 9内置在/ Scripts / angulardist目录中。
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json","version": 1,"newProjectRoot": "projects","projects": {
"App": {
"root": "","sourceRoot": "src","projectType": "application","prefix": "app","schematics": {},"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser","options": {
"outputPath": "Scripts/angulardist/","index": "src/index.html","main": "src/main.ts",
我将在默认的mvc控制器操作(主页/索引)中返回角度index.html文件(src / index.html):
public ActionResult Index()
{
var htmlPath = Server.MapPath("~/Scripts/angulardist/index.html");
return new FilePathResult(htmlPath,"text/html");
}
ngsw-config.json配置为使用index.html:
{
"$schema": "./node_modules/@angular/service-worker/config/schema.json","index": "/index.html","assetGroups": [
{
"name": "app","installMode": "prefetch","resources": {
"files": [
"/favicon.ico","/index.html","/manifest.json","/*.css","/*.js"
],
最后,我通过app.module中的ServiceWorker模块注册了Service Worker:
ServiceWorkerModule.register('/Scripts/angulardist/ngsw-worker.js',{ scope: '/Scripts/angulardist/',registrationStrategy: 'registerImmediately' }),
因此,由于angular和pwa位于子目录中,所以我设法获得要在服务工作者中注册的相对路径的唯一方法是使用:
ng build --prod --base-href=/Scripts/angulardist/
因此ngsw.json中的网址现在看起来像这样:
"urls": [
"/Scripts/angulardist/1-es2015.a1dd7840a1fc1224a25c.js","/Scripts/angulardist/1-es5.a1dd7840a1fc1224a25c.js",
因此申请工作正常,服务人员已注册。但是问题是我的网址现在是:
http://localhost:5114/Scripts/angulardist/login
所以我的问题是,如何在不更改我的子目录(/ Scripts / angulardist)的情况下为服务工作者中生成的.js和.css文件设置相对路径。
还有另一种设置方法吗?
我遇到的问题:
我尝试使用ng build --prod --base-href =。/,然后在不使用/ Scripts / angulardist的情况下加载url,并且服务工作程序中的相对路径可以正常工作,但是它看起来像服务范围工作人员无法覆盖根网址,并且应用程序无法离线运行
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)