Angular2 - 使用组件templateUrl

时间:2017-03-02 11:46:56

标签: angular angular2-aot

我正在使用Angular2并使用AOT预编译代码。

当我在Component< templateUrl中使用相对路径时,我能够编译代码。

但是在组件的templateUrl

中使用绝对路径时,编译失败了

编译命令:"node_modules/.bin/ngc" -p tsconfig-aot.json

使用绝对templateUrl:

时出现以下错误
  

错误:编译失败。找不到资源文件:{Absolute htmlUrl   路径}       在ModuleResolutionHostAdapter.readResource(C:\ Dipendra \ stash-workspace \ angular2Aot \ WebContent \ node_modules \ @angular \ compiler-cli \ src \ compiler_host.js:291:19)       在CompilerHost.loadResource(C:\ Dipendra \ stash-workspace \ angular2Aot \ WebContent \ node_modules \ @angular \ compiler-cli \ src \ compiler_host.js:230:85)       at Object.get(C:\ Dipendra \ stash-workspace \ angular2Aot \ WebContent \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:26374:111)       在DirectiveNormalizer._fetch(C:\ Dipendra \ stash-workspace \ angular2Aot \ WebContent \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:13753:47)       在DirectiveNormalizer.normalizeTemplateAsync(C:\ Dipendra \ stash-workspace \ angular2Aot \ WebContent \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:13799:25)       在DirectiveNormalizer.normalizeTemplate(C:\ Dipendra \ stash-workspace \ angular2Aot \ WebContent \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:13771:48)       在CompileMetadataResolver._loadDirectiveMetadata(C:\ Dipendra \ stash-workspace \ angular2Aot \ WebContent \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:18074:79)       在C:\ Dipendra \ stash-workspace \ angular2Aot \ WebContent \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:18250:58       at Array.forEach(native)       在CompileMetadataResolver.loadNgModuleDirectiveAndPipeMetadata(C:\ Dipendra \ stash-workspace \ angular2Aot \ WebContent \ node_modules \ @angular \ compiler \ bundles \ compiler.umd.js:18249:45)   编译失败

1 个答案:

答案 0 :(得分:1)

Angular AOT编译器要求模板文件作为组件位于SAME文件夹中,即使JIT编译器不需要这样做。

对于设计师而言,这是一个非常糟糕的决定。答案是重新设计整个应用程序,以便模板文件与组件位于同一文件夹中。

有几个假设的工作,但我不清楚他们是否真的有用。如果我成功,我会更新这篇文章。