問題タブ [server-rendering]
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.
typescript - ASP.NET Core SPA サーバーのレンダリングが react+redux+ant-design+babel-plugin-import で機能しない
Microsoft の aspnetcore-spa ジェネレーターを使用して React+Redux で新しい ASP.NET Core SPA を生成し、ant-design とbabel-plugin-importで使用しようとしましたが、初回はページが正常にレンダリングされますが、更新すると、dotnet アプリケーションを再起動した後でも、毎回次のエラーがスローされます。
リクエストの処理中に未処理の例外が発生しました。
例外: Node モジュールの呼び出しが次のエラーで失敗しました: エラーが原因で事前レンダリングに失敗しました: エラー: モジュール "../../style/index.css" が webpackMissingModule (C:\Users\viccrubs\Documents\Projects\QuestionSample1\) で見つかりませんClientApp\dist\main-server.js:595:66) オブジェクトで。(C:\Users\viccrubs\Documents\Projects\QuestionSample1\ClientApp\dist\main-server.js:595:164) webpack_require (C:\Users\viccrubs\Documents\Projects\QuestionSample1\ClientApp\dist\main- server.js:20:30) オブジェクトで。(C:\Users\viccrubs\Documents\Projects\QuestionSample1\ClientApp\dist\main-server.js:387:13) webpack_requireで (C:\Users\viccrubs\Documents\Projects\QuestionSample1\ClientApp\dist\main-server.js:20:30) Object.defineProperty.value (C:\Users\viccrubs\Documents\Projects\QuestionSample1\ClientApp\) dist\main-server.js:168:14) のwebpack_require (C:\Users\viccrubs\Documents\Projects\QuestionSample1\ClientApp\dist\main-server.js:20:30) オブジェクト。(C:\Users\viccrubs\Documents\Projects\QuestionSample1\ClientApp\dist\main-server.js:65:16) webpack_requireで (C:\Users\viccrubs\Documents\Projects\QuestionSample1\ClientApp\dist\main-server.js:20:30) Object.defineProperty.value (C:\Users\viccrubs\Documents\Projects\QuestionSample1\ClientApp\) dist\main-server.js:40:18) 現在のディレクトリ: C:\Users\viccrubs\Documents\Projects\QuestionSample1 Microsoft.AspNetCore.NodeServices.HostingModels.HttpNodeInstance+d__7.MoveNext()
このバベル プラグインは、純粋な react+webpack+typescript プロジェクトでうまく機能します。babel-plugin-import を使用せずに antd からコンポーネントを手動でインポートすると、同じエラーが発生します。間違った作業ディレクトリの問題のようで、../../style/index.css
antd コンポーネントを含むディレクトリの下に存在しますが、webpack によって処理されているはずです。また、最初のレンダリングがうまく機能するのも奇妙です。
サンプル: https://github.com/viccrubs/QuestionSample1
または、次のようにして再現します。
- その yeoman ジェネレーターを使用して、React+Redux プロジェクトで ASP.NET Core を生成します。
- npm install --save antd babel-plugin-import
ThunkAction
/ClientApp/store の下のファイルからすべてのインポートを削除します"plugins":[["import", { "libraryName": "antd", "style": "css" }]]
.babelrcに追加- Home.tsx に任意の antd コンポーネントを追加します。
"allowSyntheticDefaultImports": true,
tsconfig.jsonに追加します- dotnet を実行して localhost:5000 を開きます
- 最初のレンダリングではエラーが発生しないはずですが、更新すると上記のエラーが表示されます。
reactjs - React-Router V4 - サーバー レンダリングは 1 台のマシンでのみ動作します
サーバーレンダリングを使用して MERN プロジェクトを構築しています。誰かがプロジェクトをプルすると (サーバーまたはローカルのいずれか)、次のエラーが発生します。
TypeError: (0 , _reactRouter.createServerRenderContext) is not a function
しかし、私のマシンでは、エラーなしで正常に動作します。
また、私は react-router バージョン 4.0.0- alpha .5 を使用しています - おそらくアルファ版が問題ですか?
reactjs - プロキシの背後でレンダリングするreact-routerサーバーを使用すると、クライアント側とサーバー側のルートが異なります
ここに私の問題があります、
- フロント サーバー (apache または nginx) があり、proxy_pass "iamurl/server_render/" から "backend.iamurl.com:3000/" のような構成がいくつかありました。
- 「backend.iamurl.com:3000」サーバーで実行されているサーバーレンダリングreact-routerプログラムがあります。(react、react-router、koa2、redux)。
- クライアント側で実行すると、すべてが正しくなります。
- サーバー側で実行すると、初回はサーバー(koa2)でのリクエストで、ctx.url=/を取得するのでルーターが一致しました。しかし、renderToString() が終了し、クライアントが応答を受信したとき、location.path は「/server_render」であるため、react-router は必要なものをレンダリングしません。
問題はクライアント側とサーバー側で異なるパスであることは知っていますが、この状況(プロキシを使用)は大企業では非常に一般的だと思います。ブラウザがサーバーのレンダリング応答を受信したときに正しく実行するにはどうすればよいですか?
みんなのアイデア募集中です。
my routes コード (クライアント側とサーバー側で共有)
これが私のサーバーレンダリングコードです
angular - Angular Universal - クライアント用にキャッシュされたサーバー側のリクエスト
angularユニバーサルアプリでのクライアントのデータのキャッシュに関する記事をたくさん見たので、サーバーで既に解決されているクライアントのリクエストを複製しません。
サーバーからクライアントにデータが転送される方法がわかりません。JSON を事前にレンダリングされた HTML に挿入するか、それとも他に何か不足していますか?
angular - resolvind データを使用した Angular4 サーバー側レンダリング
私はAngular4プロジェクトに取り組んでいます。このチュートリアルに従って、サーバー側のレンダリングを統合しました。1つのことを除いて、すべてが機能します。
データが API サーバーから解決された後で、ページのメタ タグを変更する必要があります。つまり、次のように解決します。
現在の実装では、サーバーはデータを解決せずにレンダリングされたページを送信し、クライアントで解決要求が発生します。
結果がクライアントに送信される前に、サーバーレンダリングでデータのフェッチが発生したときに、動作を実装する方法を教えてもらえますか?