У меня есть приложение Sapper.js, которое я успешно запустил на AWS Lambda. Lambda может доставлять сгенерированный на стороне сервера HTML-код, созданный Sapper, в AWS API Gateway, который затем обслуживает приложение для пользователя. Я использую S3 для размещения ресурсов на стороне клиента (скриптов, фрагментов веб-пакетов и т. Д.). Корзина S3 находится в другом домене, чем API Gateway.
Проблема, с которой я столкнулся, заключается в том, что мне нужно установить префикс ресурса для этих скриптов, чтобы Sapper мог их найти. В настоящее время все мои клиентские скрипты включают относительные ссылки и выглядят так: <script src="/client/be33a1fe9c8bbaa6fa9d/SCRIPT_NAME.js"></script>
Мне нужно, чтобы они выглядели так: <script src="https://AWS_S3_BUCKET_ENDPOINT.com/client/be33a1fe9c8bbaa6fa9d/SCRIPT_NAME.js"></script>
Просматривая Sapper docs, я вижу, что могу указать базовый URL-адрес для клиента и сервера. . Однако изменение этого базового URL-адреса нарушает работу моего приложения и заставляет Lambda-рендеринг страниц возвращать 404
ошибки.
Я знаю, что при использовании, скажем, Next.js я могу добиться этого, изменив файл next.config.js
, включив в него следующее:
module.exports = {
assetPrefix: "https://AWS_S3_BUCKET_ENDPOINT.com/client",
}
Но я не знаю, как это сделать в Sapper. Нужно ли мне изменять конфигурацию сборщика (с использованием веб-пакета)? Или есть другой способ?
Спасибо.