さて、私はこの作業を得たが、それはかなり複雑な解決策のように思えるので、うまくいけば、そこに賢く私よりも誰かがこの:) src/polyfills.ts
で
まず、コメントを解除し、すべてのブラウザpolyfillsであります(それが可能そのそれらのすべてが必要とされていないが、私はそれらを一つずつ)をテストしていません:
/** IE9, IE10 and IE11 requires all of the following polyfills. **/
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';
次に、あなたはあなたのindex.html
の<head>
でスクリプトタグであなたのprerenderReady
フラグを取得する必要があります。
<head>
<!--prerender-->
</head>
を今、あなたはng build
を実行した後、あなたが実際のスクリプトタグでそのフラグを交換する必要があり、:私はビルドする前に、私はそこにフラグを残すような角度は、コメントを削除しません。これはシェルスクリプトとsed
コマンドを使って行います。ような何か:
TPL="\<!--prerender--\>"
PRERENDER_SCRIPT="\<script\>window.prerenderReady = false;\<\/script\>"
# replace the comment with the actual script tag in the html file and save
# that file's contents as a string in the INDEX_HTML variable
INDEX_HTML=$(sed "s/$TPL/$PRERENDER_SCRIPT/g;" dist/browser/index.html);
# remove the original index.html file and create an empty one in its place
rm dist/browser/index.html
touch dist/browser/index.html
# echo the INDEX_HTML string into the new file
echo "$INDEX_HTML" > dist/browser/index.html
NOTE 私はOSX上sed
をインストールするの漠然とした記憶がありますが、私は実際に手順を覚えていません。あなたがLinuxでなく、sed
がうまく動作しない場合は、Googleのソリューションを利用するだけで済みます。
最後に、prerenderReady
フラグをtrueに設定する必要があります。私はAppComponent
さんOnInit
実装で次の操作を行います。
export class AppComponent implements OnInit
{
ngOnInit()
{
window.prerenderReady = true;
}
}
それはおそらくまた、活字体のアプリでwindow
を使用するために、あなたは私がtypings.d.ts
呼び出すファイルでこのような何かが必要であることを言及クマ:
interface Window
{
prerenderReady:boolean;
}
だけでなく、私は私のapp.module.ts
ファイルの先頭に置くことタイピングファイルへの参照:
/// <reference path="../typings.d.ts" />
誰かを助ける希望。
これで成功しましたか?私も同じ問題に直面しています。 –
@GirishRathod私はしましたが、サーバーが正しく構成されている場合は、この方法を使用する必要はありません。 – Chrillewoodz
何が使えますか?私が使用できるように適切な設定例がありますか? –