我可以从root获取图像路径,如下面的代码所示。
new VideoCategory("360 grader", "/assets/images/videos/video-category-1.jpg", "360-grader")
因此,如果我的应用程序托管在根文件夹中,则路径"/assets/images/videos/video-category-1.jpg"
可以正常运行。但是当我在应用程序中托管除root之外的文件夹
http://example.com/subfolder/然后图像显然不会加载。那么如何以角度来获取应用程序的根路径?
我尝试了什么?我尝试使用PlatformLocation
,然后使用origin
和href
。但它们似乎不起作用。
import { PlatformLocation } from '@angular/common';
export class VideoCategoryService {
ploc : string;
constructor(platformLocation: PlatformLocation) {
console.log((platformLocation as any).location);
console.log((platformLocation as any).location.href);
console.log((platformLocation as any).location.origin);
this.ploc = (platformLocation as any).location.origin;
}
getList(callback) {
const list = [
new VideoCategory("360 grader", this.ploc + "/assets/images/videos/video-category-1.jpg", "360-grader")
];
callback(list);
}
}
答案 0 :(得分:1)
您使用的是角度CLI吗?如果是这样,您可以传递一个标记--base-href
,用于设置assets
等内容解析的基本路径。像这样:
$ ng build --base-href=/subfolder/
另一种选择是在index.html
中设置基本HREF:
<base href="/subfolder/">
在任何情况下,您都不必依赖PlatformLocation
,它是路由器内部用于解析URL模式的服务(另请参阅the API docs)。