Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
            }
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
 public void HandleSsrResultEvent(object sender, SsrResult ssrResult)
 {
     System.Console.WriteLine($"SsrResult: Index[{ssrResult.Index}] IsEnaged[{ssrResult.IsEngaged}]");
 }
Ejemplo n.º 5
0
 public AppPageViewModel(string mainBundleUrl, string baseUrl, SsrResult ssrResult)
 {
     MainBundleUrl = mainBundleUrl;
     BaseUrl       = baseUrl;
     SsrResult     = ssrResult;
 }
Ejemplo n.º 6
0
 public SpaModel(SsrResult ssrResult = null)
 {
     SsrResult = ssrResult;
 }