Chrome扩展程序 - 无基本href设置。请提供APP_BASE_HREF的值

时间:2016-10-27 01:12:41

标签: javascript angular google-chrome-extension

我正在制作Chrome浏览器操作扩展程序。

我正在尝试将Angular 2应用程序加载到Chrome中的弹出窗口中。

我在使用Angular 1.5之前已经这样做了,但尝试使用Angular 2并收到错误。

  

未处理的承诺拒绝:没有设置基本href。请提供一个价值   对于APP_BASE_HREF标记或向文档添加基本元素。 ;   区域:;任务:Promise.then;值:错误:没有设置基本href。   请提供APP_BASE_HREF令牌的值或添加基数   元素到文档。(...)错误:没有设置基本href。请提供一个   APP_BASE_HREF令牌的值或向其添加基本元素   文档。

我已将<base href="/">标记放入popu.html。但问题是,vendor.js和main.js被Chrome下载(并且在被popup.html加载之前),因此没有HTML页面可以放置<base href="/">

只是想知道如何解决这个问题。

Popup.html

enter image description here

<!doctype html>
<html>
<head>
    <base href="/">
    <meta charset="utf-8">
    <title>FountainJS</title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width">
    <link rel="icon" type="image/png" href="http://fountainjs.io/assets/imgs/fountain.png"/>
    <link href="../styles/popup.css" rel="stylesheet">
</head>

<body>
<div style="width: 200px; height: 150px;">
<fountain-root>My Awesome Chrome Popup should load with Angular 2 right Here</fountain-root>
<script type="text/javascript" src="../scripts/vendor.js"></script>

<script type="text/javascript" src="../scripts/main.js"></script>
</div>
</body>
</html>

1 个答案:

答案 0 :(得分:20)

您可以在代码中设置基本href

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

@NgModule({
  providers: [
    { provide: APP_BASE_HREF, useValue: '/' }
  ]
})
class AppModule {}