与webpack动态基础href链接

时间:2016-09-23 10:38:13

标签: angular webpack angular-cli

当我转移到Angular-CLI时,我刚从systemjs转移到webpack。 它曾经工作但它不再。 这就是我所拥有的:

在我的index.html中

<script type='text/javascript'>
    var base = document.location.pathname.split('/')[1];
    document.write('<base href="/' + base + '" />');
</script>

我还在下面添加的几个js文件的根目录中添加了一个“/”。

现在我在webpack上,这些文件是从其他地方加载的,我不能再添加这个“/”了。 因此,它会尝试在http://www.exemple.com/it/xxx.js上加载它们,而不是http://www.exemple.com/xxx.js

我已经看到我必须更新webpack.config.js文件中的内容,但angular-cli家伙已经决定将它放在他们的模块中而不是像往常一样放在项目根目录上。 我知道我可以编辑这个文件,但每次更新angular-cli时我都不想再这样做了。

有没有好方法呢?

2 个答案:

答案 0 :(得分:4)

  

构建时,您可以修改基本标记()   index.html with --base-href your-url option。

# Sets base tag href to /myUrl/ in your index.html
ng build --base-href /myUrl/
ng build --bh /myUrl/

https://github.com/angular/angular-cli#base-tag-handling-in-indexhtml

答案 1 :(得分:1)

也许您可以在@NgModule注释中使用提供程序:

@NgModule({
        declarations: [
            AppComponent,...    ],
        providers: [
            { provide: APP_BASE_HREF, useValue: '/'},... ],
        bootstrap: [AppComponent] 
}) 
export class AppModule { }