如何解决子目录中pwa的asp mvc 5 angular 9相对路径问题
我有一个angular9的Asp mvc 5网站。
我的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文件设置相对路径。
还有另一种设置方法吗?
我遇到的问题:
- 我不想/不需要在URL中显示/ Scripts / angularDist路径
- 所有http调用现在都无法通过网络api,因为相对路径已附加到api调用
修改
我尝试使用ng build --prod --base-href =。/,然后在不使用/ Scripts / angularDist的情况下加载url,并且服务工作程序中的相对路径可以正常工作,但是它看起来像服务范围工作人员无法覆盖根网址,并且应用程序无法离线运行
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。