問題タブ [prerender]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - .NET MVC アプリケーションでの Angular ページの事前レンダリング
AngularJS で構築されたページの pdf を生成する必要がある.NET 用の EVO HTML-to-PDF コンバーターを使用して機能を実装しています。
ページに非同期でデータをロードしていますが、現在、私の PDF には ajax 経由でロードされたコンテンツが含まれていません。
URL経由でPDFに直接アクセスできる必要があるため、JavaScriptを使用してDOMをサーバーに渡すことはできません。
Prerender.ioの .NET ミドルウェア ( greengerong による)を実装しましたが、正常に動作するようです。
- ページは認証の背後にあります (.NET 基本 MVC5)
- サードパーティのサービスに機密データを渡したくない
- 私はlocalhost /で開発しています
質問は次のとおりです。事前レンダリングを偽造する方法はありますか、または同じ .NET MVC アプリケーションで実行するために prerender.io サービスを自分で実装するにはどうすればよいですか (認証トークンを保持するためなど)?
node.js - Angular SEO: Heroku の Node.js サーバーの Google ウェブマスター ツールと Prerender.io
heroku での prerender.io サーバーのセットアップに関するドキュメントとチュートリアルに従った後でも、GWT はまだデータなしで私のサイトをフェッチしてレンダリングしています。
prerender.io はページを適切にキャッシュしています。index.html にフラグメント メタ タグを設定し、app.js に $locationProvider.hashPrefix('!') を設定しました。
サイトを適切にクロールするために何が必要なのか、または GWT のレンダリングが見た目ほど適切ではないのか、誰か説明してもらえますか?
ありがとう!
エクスプレスサーバーはこちら
angularjs - phantomjs で奇妙な文字が出力される
Xamppにprerender.ioをインストールしましたが、特別なことは何もしませんでした。prerender に必要なものをすべてインストールし、prerender.ioとhttps://github.com/zf-fr/zfr-prerenderのドキュメントに従いました。ここに prerender を置いたとしましょう:
そして、私が実行したコンソールで:
Zfr-prerender はミドルウェアで、prerender を参照する URL を 1 つだけ変更しました。
私のブラウザでは、次の場所に移動します。
ローカルホスト/ショップ/api/list?_escaped_fragment_=
ルートが見つからない場合、angularJS からのルーターは /list/1 にリダイレクトします。
}]);
コンソールは私にこれを伝えています:
しかし、phantomJS が返すのは奇妙な文字だけです。
これらは、ヘッダー var_dump($response->getHeaders()) です。
これは PHP var_dump($response->getContent()) です:
文字列 '‹������³É(Éͱ³ÉHML±³Ñ‡PIù)•@”+�� 'H'���' (長さ=45)
‹³É(Éͱ³ÉHML±³Ñ‡PIù)•@”+ 'H'
basic-authentication - basicAuth 構成を事前にレンダリングする
私はprerender サーバーを実行していますが、すべて問題ありませんが、 basicAuthを使用してセキュリティを設定したいと考えています。
コンソールで、ユーザー名とパスワードをエクスポートしました
私のserver.jsに、次の行を追加しました:
しかし、問題は、正しいユーザー/パスで prerender を呼び出すように Express サーバーをどのように構成すればよいかということです。私はこれを持っています:
ドキュメントが見つかりません。次のようなものを期待しています:
よろしくお願いします。ありがとう、そしてハッピークリスマス:)
解決
多くの場合、問題を明確に理解していれば、解決策は簡単です...
それ以外の :
簡単に:
しかし、新しい問題
次のようにスクリプトを起動すると、エクスポートされた環境変数 (BASIC_AUTH_USERNAME および BASIC_AUTH_PASSWORD) にアクセスできます。
しかし、私はそれらを常に実行したいので、次のことを行います:
この場合、環境変数にアクセスできなくなります...最初の質問ではなく関連しているため、新しい質問を開きます!
しかし、願わくば新しいソリューション
env変数を1回だけ設定したいので気に入らない場合でも、永遠のように使用してトリックを行いました:
2016/05/05更新
nodejs バックグラウンド サーバーを実行するためにスーパーバイザーに移動しました。ここに私の prerender セクションがあります (環境変数がどのように渡されるかに注意してください)
それ以来、.htaccess リダイレクトで奇妙な問題が発生しました。
正しい Basic Auth リクエスト ヘッダーを追加していなかったため、prerender がスナップショット (401) を拒否していたため、Apache ヘッダー モジュール (sudo a2enmod ヘッダー) を有効にして、前の行の上に次の行を追加する必要がありました。
コード aHVnbzpib3Nz は、コマンド ラインによって生成されます。