Я пытаюсь понять использование и ограничения рендеринга на стороне сервера с помощью vuejs при использовании ядра aspnet.
Я использовал этот стартовый комплект для ядра aspnet и vuejs для настройки простогоvue site, который работает на основе приведенного здесь кода: https://github.com/selaromdotnet/aspnet-vue-ssr-test/tree/master
Затем я изменил проект, обновив aspnet-prerendering, и добавил vue-server-renderer, скомпилировав сборку исходных кодов для объединения этого обновления.: https://github.com/selaromdotnet/aspnet-vue-ssr-test/tree/ssr
Если я запускаю этот проект, кажется, что сайт загружается нормально, и если я отключаю JavaScript в браузере, я вижу, что кажется, что рендеринг на стороне сервера выполнен и заполненрезультат html:
однако, поскольку JavaScript отключен, содержимое не перемещается в DOM, как это выглядит, как будто пытается...
Мое понимание рендеринга на стороне сервера состоит в том, что он полностью заполнит html и предоставит пользователю заполненную страницу, так что даже если бы JS был отключен, они быВосток сможет увидеть страницу (специально для целей SEO).Я ошибаюсь?
Теперь я считаю, что современные поисковые системы будут выполнять простые скрипты, подобные этой, чтобы получить контент, но я все еще не хочу, чтобы пустая страница отображалась, если js отключен ...
Это ограничение рендеринга на стороне сервера, или, возможно, конкретно ssr с ядром vue и / или aspnet?
или я просто пропускаю шаг куда-то?
Редактировать: дополнительная информация
Я посмотрел на исходный код, так как я полагаю, что этот метод преобразует раздел здесь: https://github.com/aspnet/JavaScriptServices/blob/dev/src/Microsoft.AspNetCore.SpaServices/Prerendering/PrerenderTagHelper.cs
Строка
output.Content.SetHtmlContent(result.Html);
имеет нулевое значениедля результата. HTML.Однако, когда я вручную редактирую это значение, чтобы поместить тестовое значение, оно также не отображается в выходном html, а тег app div остается пустым ...
Если я что-то не так делаю,Заполните значение result.Html ожидаемым выводом, это одно, и я был бы признателен за помощь в этом, тем более что выходной html, кажется, найден, поскольку он находится в сценарии, который следует сразу за ...
Однако, даже если бы я заполнил его, похоже, что он пропускается, о чем я вручную изменил значение.это ошибка в коде, или я неправильно что-то делаю, или, возможно, оба?