localizerouter在发布后不更改语言

时间:2017-01-31 07:36:14

标签: angular

我正在使用this,我在组件中有这个代码

import { Component } from '@angular/core';
import {LocalizeRouterService} from 'localize-router';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'app works!';

  constructor(private localize: LocalizeRouterService) {}

  changeLanguage(lang: string) {
    this.localize.changeLanguage(lang);
  }
}

和html

<button (click)="changeLanguage('en')">EN</button>
<button (click)="changeLanguage('de')">DE</button>

这在localhost中运行良好,但是一旦我使用ng build --prod发布它并在IIS中托管它就会记录此错误:

  

意外的令牌&lt;在位置0的JSON中

怎么了?

1 个答案:

答案 0 :(得分:1)

该应用正在尝试从本地化路由器加载(James,Miles,james@abcd.com,9876543210,email), (John,Paul,john@abcd.com,9638527410,phone), (Math,willams,Math@abcd.com,99873210456,phone) 配置文件。我猜你忘了把它添加到JSON里面的资产数组中。由于您的网络服务器设置为使用angular-cli.json文件提供任何404请求,因此应用程序尝试将index.html文件解析为json,这将导致典型错误:

  

意外的令牌&lt;在位置0的JSON中

令牌html<代码的开头。

简而言之,请修改<!DOCTYPE html>

angular-cli.json

也可能是您忘记将字典{ ... "apps": [ { ... "assets": [ ..., "path/to/localize-router/config.json" ], } ] } 文件添加到资源文件夹中。但就此而言,同样的配方适用于上述