Ich arbeite an dem Projekt mit ASP.Net Core
(.NetCoreApp 1.1
) + SpaServices
+ React
+ Redux
+ Webpack
. Die wahre Stärke von React ist ein serverseitiges JS-Rendering. Alles funktioniert gut, wenn Sie IIS
/Kestrel
mit beliebten JS-Bibliotheken verwenden, aber das serverseitige Rendering bricht zusammen, wenn Sie versuchen, einige UI-Bibliotheken zu verwenden.ASP.Net Core-JavaScript-Engine
Ich verwende react-planner
in meinem Projekt und es hängt von "drei" Lib, die WebGL und Canvas-Renderer bietet. Das Problem ist, dass die Standard-JS-Engine von Asp.Net Core keine 'Fenster'-Umgebung hat, die im Browser auf der Client-Seite verfügbar ist, so dass der Server einige JS-Bibliotheken nicht rendern kann. Es gibt eine Bibliothek für .Net
, die JavaScriptEngineSwitcher
genannt wird, aber .NetCoreApp
wird nicht unterstützt. Ich sehe derzeit 3 Möglichkeiten:
- Finden Sie eine Möglichkeit, Standard-JS-Engine zu wechseln.
- Server-seitiges Rendern deaktivieren.
- Finden Sie eine Möglichkeit, Server-Side-Rendering nur für
react-planner
auszuschalten.
Irgendwelche Gedanken?
Ich bin nicht Sicher * alle * Javascript-Engines unterstützen 'Fenster'. 'window' ist global für einen Browser. Ich würde nach Option 3 schauen und feststellen, ob Sie serverseitig rendern oder nicht. –
Es gibt eine explizite Option auf der Hauptseite der App, die definiert, ob das serverseitige Rendering verwendet werden soll oder nicht. Ich weiß nicht, wie man das serverseitige Rendering nur für ein paar Komponenten verwendet und ich weiß nicht, ob es möglich ist. – veralex