Я создал приложение Angular 7 и мне нужно было улучшить SEO, добавив в него рендеринг на стороне сервера.Поэтому я выполнил все шаги, необходимые для этого, и все отлично работает на моей локальной машине.Сейчас я пытаюсь внедрить это изменение в производство.Поэтому я запускаю эту команду:
npm run build: ssr && npm run serve: ssr
Терминал показал мне сообщение:
Сервер Node Express прослушивает http://localhost:4000
Мой веб-сайт работает отлично.Теперь я перехожу к моей папке dist, которая выглядит следующим образом:
Я создал новую папку на своем компьютере (папка SSR) и вставил в нее папку dist.После этого у меня есть / projects / SSR / dist
. Я открыл папку SSR в коде Visual Studio и добавил файл web.config в корневую папку.
web.configbody
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation batch="false" />
</system.web>
<system.webServer>
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="myapp">
<match url="/*" />
<action type="Rewrite" url="server.js" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Я скопировал файл package.json из своего основного углового проекта и вставил его в папку SSR.Затем с помощью команды 'npm install' внутри терминала установили необходимые пакеты.
Где-то я обнаружил, что мои файлы server.js / prerender.js также должны быть в корневой папке, поэтому я скопировал / вставил их из distпапка.Вот так выглядит моя папка SSR:
Затем я использовал расширение «Служба приложений Azure» для кода VS, выбрал только что созданное веб-приложение Azure и нажал «Развернуть вВеб-приложение ».После успешного развертывания моего приложения я нажимаю «Обзор» и получаю сообщение об ошибке:
Страница не может быть отображена, поскольку произошла внутренняя ошибка сервера.
I 'проверил логи и не понимаю, что я сделал не так:
ср 24 апреля 2019 19:33:41 GMT + 0000 (Всемирное координированное время): приложение выдало необработанное исключение и завершено:
SyntaxError:
at Module._compile (module.js:434:25)
at Object..js (module.js:464:10)
at Module.load (module.js:353:31)
at Function._load (module.js:311:12)
at Module.require (module.js:359:17)
at require (module.js:375:17)
at Object.<anonymous> (D:\Program Files (x86)\iisnode\interceptor.js:459:1)
at Module._compile (module.js:446:26)
at Object..js (module.js:464:10)
at Module.load (module.js:353:31)
Приложение выдало необработанное исключение и завершено:
SyntaxError:
at Module._compile (module.js:434:25)
at Object..js (module.js:464:10)
at Module.load (module.js:353:31)
at Function._load (module.js:311:12)
at Module.require (module.js:359:17)
at require (module.js:375:17)
at Object.<anonymous> (D:\Program Files (x86)\iisnode\interceptor.js:459:1)
at Module._compile (module.js:446:26)
at Object..js (module.js:464:10)
at Module.load (module.js:353:31)
Программное обеспечение: Microsoft Internet Information Services8,0