private async Task <SsrResult> PrerenderIfNeeded(AppDescriptor app) { if (!ssrDecider.ShouldPrerender()) { return(null); } SsrResult ssrResult = null; var ssrBundleUrl = string.Format(serverBundleUrlTemplate, app.BundlePrefix); var serverRenderingModuleFile = env.WebRootFileProvider.GetFileInfo(ssrBundleUrl); logger.LogInformation($"[SSR] Bundle URL: {ssrBundleUrl}. Resolved file path: {serverRenderingModuleFile.PhysicalPath}"); if (serverRenderingModuleFile.Exists) { var data = new SsrData { baseUrl = app.BaseUrl }; ssrResult = await SsrRenderer.RenderAsync(Request, ssrBundleUrl, app.BaseUrl, data); if (ssrResult != null) { logger.LogInformation("[SSR] Success"); } } else { logger.LogWarning("[SSR] Pre-rendering skipped because bundle file doesn't exist."); } return(ssrResult); }
public void HandleSsrResultEvent(object sender, SsrResult ssrResult) { Debug.WriteLine($"SsrResult: Index[{ssrResult.Index}] IsEnaged[{ssrResult.IsEngaged}]"); switch (ssrResult.Index) { case 5: BeerFactoryModel.SsrEnagaged1 = ssrResult.IsEngaged; break; case 6: BeerFactoryModel.SsrEnagaged2 = ssrResult.IsEngaged; break; } }
public async Task <IActionResult> Index() { SsrResult ssrResult = null; if (ssrOptionsAccessor.Value.IsEnabled) { var serverRenderingModuleFile = env.WebRootFileProvider.GetFileInfo(ssrOptionsAccessor.Value.JsBundlePath); if (serverRenderingModuleFile.Exists) { ssrResult = await SsrHelper.RenderAsync(Request, ssrOptionsAccessor.Value); } } var model = new SpaModel(ssrResult); return(View(model)); }
public void HandleSsrResultEvent(object sender, SsrResult ssrResult) { System.Console.WriteLine($"SsrResult: Index[{ssrResult.Index}] IsEnaged[{ssrResult.IsEngaged}]"); }
public AppPageViewModel(string mainBundleUrl, string baseUrl, SsrResult ssrResult) { MainBundleUrl = mainBundleUrl; BaseUrl = baseUrl; SsrResult = ssrResult; }
public SpaModel(SsrResult ssrResult = null) { SsrResult = ssrResult; }