Я реализовал Angular Универсальный рендеринг на стороне сервера в соответствии с документацией (и примерами, которые я нашел в Интернете) и вижу, что он работает (в основном) так, как я ожидал. Мои конечные точки API, необходимые для рендеринга начальной страницы, все выполняются на стороне сервера, а данные передаются через TransferState на сторону клиента. Проблема (или, может быть, я неправильно понимаю) заключается в том, что html не «отображается» на стороне сервера.
Я имею в виду; Как только сайт загружается на стороне клиента, я вижу все данные, как и ожидалось, на экране. Но если я просматриваю исходный код страницы, я вижу, что переданные данные находятся внутри тега скрипта и все теги html пусты.
<body>
<ng-app ng-version="7.2.15"><default-layout-shell _nghost-sc0=""><app-title _ngcontent-sc0=""></app-title><div _ngcontent-sc0="" class="c-body flex-layout-5310" fxflex="" fxlayout="column"><router-outlet _ngcontent-sc0=""></router-outlet></div><!----><!----></default-layout-shell></ng-app>
<script type="text/javascript" src="runtime.7275e06f48d8f7974dd0.js"></script><script type="text/javascript" src="es2015-polyfills.372e85019e45b5229792.js" nomodule=""></script><script type="text/javascript" src="polyfills.d278c42f6df83350ad60.js"></script><script type="text/javascript" src="scripts.c21d5e3a7d1748ad8df9.js"></script><script type="text/javascript" src="main.0c70d781ebf571a3ab70.js"></script>
<script id="ng-cli-app-state" type="application/json">{all-my-data-is-here}</script>
</body>
Я ожидал, что фактический html был бы отправляется в браузер клиента с данными сценария json, уже вставленными в теги html и готовыми к go. Но это не тот случай? Вместо этого некоторые javascript должны запускаться и вставлять эти данные в html после загрузки страницы на стороне клиента.
Я несколько ожидал, что мог бы вообще отключить javascript и все еще мог по крайней мере, увидеть начальную страницу, загруженную со всеми ожидаемыми данными на месте. Это не правильно? Или, скорее всего, я пропустил какую-то часть реализации Angular Universal?