Angular获取生产应用的根路径

时间:2018-02-01 14:35:22

标签: javascript angular

我可以从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,然后使用originhref。但它们似乎不起作用。

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);
  }

}

1 个答案:

答案 0 :(得分:1)

您使用的是角度CLI吗?如果是这样,您可以传递一个标记--base-href,用于设置assets等内容解析的基本路径。像这样:

$ ng build --base-href=/subfolder/

另一种选择是在index.html中设置基本HREF:

<base href="/subfolder/">

在任何情况下,您都不必依赖PlatformLocation,它是路由器内部用于解析URL模式的服务(另请参阅the API docs)。