0

私はAngularアプリケーションにprerenderを使用しており、実際にプロダクション、具体的にはHerokuを実装する方法についてはいくつか問題があります。Node.jsをプロダクションにPrerender.ioをデプロイする

だから私はlocalhostに、私はlocalhost:9000に私のアプリを実行することができ、その後、別の端末でlocalhost:9001発言にprerenderのインスタンスを実行してドキュメントから理解しています。私が言うことができるprerender-nodeミドルウェアを使用してその後、次の:私は理解していない何

app.use(require('prerender-node').set('prerenderServiceUrl', 'http://localhost:9001'));

は、私が代わりにlocalhost:9000prerenderサービスを実行できる方法ですか?私はちょうどprerenderを実行するために完全に新しいサーバをセットアップしたくありません。別のサーバーで私が最も心配しているのは、それを本番環境でどのように呼び出すかです。 URLをmy-prerender-server.comのように設定する必要がありますか?そのドメインを購入する必要がありますか?これは愚かなように見えるかもしれませんが、どうすれば素敵でシンプルに保つことができますか?可能であれば、1つのアプリからすべてを実行したいと思います...

アイデアやヒントはありますか?

答えて

0

私はプレレンダリングとノードプリレンダリングを使用して、角度1アプリのクローラを処理します。

異なるドメイン/ポートを受信する2つのサーバーを作成する必要があります。最も簡単な方法は、prerender.company.comのようなサブドメインを作成することです。これは無料で、DNSで簡単に設定する必要があります。

vhostのようなものを使用して、両方のサーバーを1つのプロセスで実行することは可能ですが、2つのセパレートサーバーを実行する方が簡単で簡単です。

+0

セルフホストソリューションを使用しているときにセットアップを少し拡張できますか?ローカルでテストするとき、私は文字通りデモ 'prerender'アプリをダウンロードし、' localhost:9000'を聞くためにサービスをバインドするためにオンラインで見たランダムなコマンドを使用しました。 'node-prerender'ライブラリは、あなたのURLを設定するための1行のコードを含む単純なケースのように見えますが、あなたのソリューションを開発する際に特別なことはありますか? – germainelol

+0

'node-prerender'はシンプルな1ライナーです。サーバーはデモとほとんど同じで、構成も簡単です。 'process.env.PORT'などを設定することでポートを変更することができます。私たちの角型アプリケーションでは' window.prerenderReady = true'を使用して、プリレンダーに必要なすべてのリソースがロードされたときに設定できます。また、s3キャッシュプラグインを問題なくセットアップしました。 – Thorning

+0

ありがとうございますので、 'node-prerender'はリクエストがボットから来たものかどうかを判断します。 'window.prerenderReady = true'を実行する際に、どのようなことを確認しますか?そして、この 'prerenderReady'変数をサーバに渡して、HTMLのレンダリングをいつ開始するのかを知ることができますか? – germainelol

関連する問題