2017-11-06 30 views
1

サーバーサイドレンダリングプロジェクトが動作し、アンギュラユニバーサルガイドが続いています。私が他のulrsに移動しているときを除いて、うまく動作しています。「ページソースを表示」しても最初のページ(ログインページ)のソースが表示されます。Angular 5(Angular Universal)ページソースが更新されていないサーバーサイドレンダリング

この問題の原因は何ですか?

p.s. prerender.tsによって生成されたcontenは、ログイン画面のソースも生成します。

+0

現在のDOMを確認するには、Chromeの開発ツールを使用して右クリックし、inspectを押します。この方法で、現在生成されているDOMを取得します。 –

+0

サーバ側のレンダリングが実際に動作しているかどうかを確認するためにJavaScriptを無効にしようとしましたか? – adrianolsk

+0

ええ、そうです。ありがとう –

答えて

1

ソース表示元は HTMLをロードしました。後でDOMは角度で修正されましたが、最初に読み込まれたHTMLには影響しません。

+0

検索のスパイダーは、変更されていない場合、どのように変更されたhtmlとその構造を取得しますか?彼らは変更されたHTMLを読み取ることができる場合、サーバー側のレンダリングは意味をなさないので... –

+0

RaduDiţăが彼のコメントで彼のコメントで述べたように、devのツールを開き、 'Elements'タブを参照してください – kemsky

+0

はい私は知っていますが、すべての出力が表示されます。しかし、検索スパイダーはdevのツールを開くことができませんこれは、サーバー側のレンダリングがすべてのものです... –

0

最近この問題もありました。これは、Apacheサーバー上のサーバープロキシと関係があり、他のURL上のページをレンダリングしないものでした。しかし、すべて私のlocalhostサーバー上で動作していた。

example.com (rendering) 
example.com/faq (rendering) 
example.com/faq/general (not rendering) 

Apacheを使用している場合は、サーバーを再起動し

あなたのバーチャルホストファイル

<VirtualHost *:80> 
ServerName example.com 
DocumentRoot /your/apache/files/htdocs 

ProxyRequests Off 
ProxyPreserveHost On 
ProxyVia Full 
<Proxy *> 
    Require all granted 
</Proxy> 

<Location /*> 
     ProxyPass http://127.0.0.1:3000 
     ProxyPassReverse http://127.0.0.1:3000 
</Location> 
<Location /faq/*> 
     ProxyPass http://127.0.0.1:3000 
     ProxyPassReverse http://127.0.0.1:3000 
</Location> 

</VirtualHost> 
でプロキシ設定を構成し、それはあなたのビューページのソースの上に出てくるはずです。

+0

私はこの問題を解決しました。問題は本当のものではなく、私の誤解です。私はサーバー側のレンダリングの承認をremvoeする必要があったので、ルートは許可されていた。しかし、SSRがSSRの多くの意味を認めることはできませんでした。SSRが実際のREST API呼び出しを正しく実行しているとは思っていませんでした。 –

関連する問題