服务器中 url 不起作用,通过服务器上的Http请求的URL必须是绝对的。 URL:./assets/i18n/en.json...

我是Angular 2的新手,我在ngx-translate组件中遇到以下问题(通过服务器上的Http请求的URL必须是绝对的。)URL:./assets/i18n /en.json)。我相信,这en.json文件是存在的,因为我做HTTP请求,并请求成功通过服务器上的Http请求的URL必须是绝对的。 URL:./assets/i18n/en.json

这里是我的app.module.server.ts文件:

import { NgModule } from '@angular/core';

import { ServerModule } from '@angular/platform-server';

import { sharedConfig } from './app.module.shared';

import { HttpModule, Http } from '@angular/http';

import {

TranslateModule,

TranslateLoader,

MissingTranslationHandler,

MissingTranslationHandlerParams

} from '@ngx-translate/core';

import { TranslateHttpLoader } from '@ngx-translate/http-loader';

export function createTranslateLoader(http: Http) {

return new TranslateHttpLoader(http, './assets/i18n/', '.json');

}

export class MyMissingTranslationHandler implements MissingTranslationHandler {

handle(params: MissingTranslationHandlerParams) {

return '[' + params.key + ']';

}

}

@NgModule({

bootstrap: sharedConfig.bootstrap,

declarations: sharedConfig.declarations,

imports: [

ServerModule,

HttpModule,

TranslateModule.forRoot({

loader: {

provide: TranslateLoader,

useFactory: (createTranslateLoader),

deps: [Http]

}

}),

...sharedConfig.imports

]

})

export class AppModule {

}

这里是我app.module.cleint.ts文件:

import { NgModule } from '@angular/core';

import { BrowserModule } from '@angular/platform-browser';

import { FormsModule } from '@angular/forms';

import { HttpModule,Http } from '@angular/http';

import { sharedConfig } from './app.module.shared';

import {

TranslateModule,

TranslateLoader,

MissingTranslationHandler,

MissingTranslationHandlerParams

} from '@ngx-translate/core';

import { TranslateHttpLoader } from '@ngx-translate/http-loader';

export function createTranslateLoader(http: Http) {

return new TranslateHttpLoader(http, './assets/i18n/', '.json');

}

export class MyMissingTranslationHandler implements MissingTranslationHandler {

handle(params: MissingTranslationHandlerParams) {

return '[' + params.key + ']';

}

}

@NgModule({

bootstrap: sharedConfig.bootstrap,

declarations: sharedConfig.declarations,

imports: [

BrowserModule,

FormsModule,

HttpModule,

TranslateModule.forRoot({

loader: {

provide: TranslateLoader,

useFactory: (createTranslateLoader),

deps: [Http]

}

}),

...sharedConfig.imports

],

providers: [

{ provide: 'ORIGIN_URL', useValue: location.origin },

{

provide: MissingTranslationHandler,

useClass: MyMissingTranslationHandler

}

]

})

export class AppModule {

}

,这里是我的app.module.shared.ts文件:

import { NgModule } from '@angular/core';

import { RouterModule } from '@angular/router';

import { HttpModule, Http } from "@angular/http";

import { BrowserModule } from "@angular/platform-browser";

import { TranslateModule} from '@ngx-translate/core';

import { AppComponent } from './components/app/app.component'

import { NavMenuComponent } from './components/navmenu/navmenu.component';

import { HomeComponent } from './components/home/home.component';

import { FetchDataComponent } from './components/fetchdata/fetchdata.component';

import { EmployeesListComponent } from './components/employees/EmployeesList.component';

import { CounterComponent } from './components/counter/counter.component';

export const sharedConfig: NgModule = {

bootstrap: [AppComponent],

declarations: [

AppComponent,

NavMenuComponent,

CounterComponent,

FetchDataComponent,

EmployeesListComponent,

HomeComponent

],

imports: [

RouterModule.forRoot([

{ path: '', redirectTo: 'home', pathMatch: 'full' },

{ path: 'home', component: HomeComponent },

{ path: 'counter', component: CounterComponent },

{ path: 'fetch-data', component: FetchDataComponent },

{ path: 'employees-list', component: EmployeesListComponent },

{ path: '**', redirectTo: 'home' }

]),

BrowserModule,

HttpModule,TranslateModule

]

, exports: [

TranslateModule

]

};

2017-06-17

Mohammad

+0

请阅读[在什么情况下,我可以添加“紧急”或其他类似的短语到我的问题,以获得更快的答案?](/ meta.stackoverflow.com/q/326569) - 总结是,这不是解决志愿者问题的理想方式,而且可能对获得答案起反作用。请不要将这添加到您的问题。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值