การเปลี่ยนฐาน href บนการนำทางเชิงมุม

ในขณะที่สร้างแอปพลิเคชันเชิงมุมของฉันโดยใช้ ng build ฉันได้จัดเตรียมแฟล็ก --base-href สำหรับแอปพลิเคชันของฉันเป็น foo ดังนั้น URL สำหรับแอปพลิเคชันของฉันจึงดูเหมือน https://10.10.10.19:8080/foo อย่างไรก็ตาม ฉันต้องการนำทางไปยังเพจที่มีแถบแทนใน URL เช่น https://10.10.10.19:8080/bar.

ฉันลองใช้ router.navigateByUrl('/bar') แต่มันสร้าง URL https://10.10.10.19:8080/foo/bar ซึ่งไม่ใช่สิ่งที่ฉันกำลังมองหา

ใครสามารถช่วยฉันในสิ่งที่ขาดหายไปหรือผิดพลาดที่นี่?


person Naman Arora    schedule 05.12.2018    source แหล่งที่มา
comment
แสดงรหัสของคุณให้ฉันดู   -  person ram12393    schedule 05.12.2018
comment
เพื่อให้เจาะจง โปรดแสดงไฟล์เส้นทางของคุณให้เราดู และลองเปลี่ยน baseHref = / ใน index.html   -  person KiraAG    schedule 05.12.2018
comment
การตั้งค่าฐานสำหรับแอปของคุณอธิบายไว้ในบทความที่ฉันเผยแพร่ ฉันหวังว่าสิ่งนี้จะช่วยคุณได้: joeljoseph.net/   -  person Joel Joseph    schedule 05.12.2018


คำตอบ (3)


ไม่แน่ใจหลังจากสร้าง แต่ในระหว่างการพัฒนาฉันใช้โค้ดต่อไปนี้และมันใช้งานได้สำหรับฉัน ..

this.router.navigate(['../bar'], { relativeTo: this.route });
person R. Viral    schedule 05.12.2018
comment
นี่คืออะไร เส้นทางที่นี่? เป็นอินสแตนซ์ของ ActivatedRoute ที่คุณกำลังพูดถึงหรือไม่ - person Naman Arora; 05.12.2018
comment
ขณะนี้ฉันอยู่ที่ตำแหน่ง URL 10.10.10.19:8080/foo/a1 และต้องการนำทาง ถึง 10.10.10.19:8080/bar/b2 จากสิ่งที่คุณแนะนำ ฉันลองแบบเดียวกันกับ this.router.navigate(['../../bar/b1'], { relativeTo: this.route }); แต่สิ่งเดียวกันล้มเหลวโดยมีจำนวน '../' ที่ไม่ถูกต้อง มีความคิดเห็นเกี่ยวกับเรื่องนี้บ้างไหม? - person Naman Arora; 05.12.2018

โดยพื้นฐานแล้ว คุณต้องการให้ตั้งค่า href ฐานของคุณแบบไดนามิก เนื่องจากคุณไม่สามารถลบเฉพาะ base href (AFAIK) ได้

นำเข้า base_HREF บน main.ts

import { APP_BASE_HREF } from '@angular/common';

และตั้งค่าผู้ให้บริการของคุณดังนี้

providers: [
    {
        provide: APP_BASE_HREF,
        useValue: '/' + (window.location.pathname.split('/')[1] || '')
    }
]

ให้เครดิตกับลิงก์นี้: ลิงก์นี้สามารถใช้งานได้: Angular 2 / 4 / 5 - ตั้งค่าฐาน href แบบไดนามิก

person T. Shashwat    schedule 05.12.2018

สามารถทำได้โดยการฉีดพึ่งพาหรือผ่าน httpInterceptors

ฉันหวังว่าลิงค์ด้านล่างจะช่วยคำถามของคุณ http://www.projectcodify.com/angular-set-base-url-dynamically

person Padmapriya Vishnuvardhan    schedule 05.12.2018