Лучший способ обслуживать внешний интерфейс vue.js, а также использовать prerender.io при наличии размещенного в Heroku внутреннего узла node.js. - PullRequest
0 голосов
/ 06 марта 2019

Короче говоря, я долго искал и до сих пор не получил удовлетворительного ответа, что делать.У меня есть приложение vue.js, которое прямо сейчас развернуто на Amazon S3 в качестве статического веб-сайта с использованием Cloudfront в качестве CDN.Это работает хорошо.Он связывается с моим API на моем сервере node.js, размещенном на Heroku.Все хорошо.

Чтобы использовать prerender.io (решение, необходимое для обмена ссылками с моего сайта на Facebook и т. Д.), Мне нужно знать, например, пытается ли FacebookBot получить доступ к моему сайту или обычный пользователь.Я знаю, что вы можете использовать для этого функции Lambda Edge (https://github.com/jinty/prerender-cloudfront) и просто сохранять все на S3 ... но по разным причинам (я хочу настроить вызовы prerender.io), я не хочу этого делать.

Второй вариант - просто сохранить index.html на моем сервере Heroku, использовать его в качестве входа на мой сайт для всех пользователей и при необходимости делать там вызовы prerender.io. Но я сохраняю все свои статические свойства.ресурсы на S3. Предлагаемые здесь: https://medium.com/@pritojs/spa-prerender-io-aws-s3-how-to-make-it-work-c3f7741c7f3.

Последний вариант, который я видел, это просто забыть о S3, поместить всю папку dist в мое приложение Heroku API (или создать второе отдельное приложение Heroku дляэто с его собственным сервером, который просто выполняет статические файлы) и использует Cloudfront для папки dist отсюда. Проблема, с которой я здесь уже столкнулся, заключается в обслуживании файлов .gz вместо несжатых (очевидно, heroku этого не делает ...) но, видимо, для этого есть обходной путь (https://codeburst.io/how-i-decreased-the-size-of-my-heroku-app-by-75-1a4cf329b0ab).

Я думаю, что не могу быть первым, кто столкнется с этой проблемой. Но я также не могу понять,что стандартное решение люди делают.

tldr - приложение vue.js, серверная часть Heroku API, хотите иметь промежуточное программное обеспечение для обеспечения работоспособности функций совместного использования, что использовать?Heroku только с CDN или Heroku с S3 с CDN?

...