试图将我的nuxt应用程序部署到AWS Lambda。 阅读这篇文章:
https://medium.com/@fernalvarez/serverless-side-rendering-with-aws-lambda-nuxtjs-b94d15782af5
https://dzone.com/articles/a-crash-course-on-serverless-side-rendering-with-v
一切正常,但控制台中存在一些js错误。尝试了“ router.base”和“ build.publicPath”配置的多个变体,但是没有运气。
这是我的环境:
nuxt.config.js:https://pastecode.xyz/view/69ad1f00
package.json:https://pastecode.xyz/view/2401a6d2
server.js:https://pastecode.xyz/view/48012477
handler.js:https://pastecode.xyz/view/b59848a5
serverless.yml:https://pastecode.xyz/view/5916f406
因此,当我访问已部署的应用程序时,除了js控制台中的错误外,一切都很好:
当我检查html代码时,此js的路径生成为:
https://*******.execute-api.eu-central-1.amazonaws.com/dev/_nuxt/7881ea044902e4092627.js
那是404,但是!这个存在:
https://*******.execute-api.eu-central-1.amazonaws.com/dev/dev/_nuxt/7881ea044902e4092627.js
您可以看到我手动添加的其他/ dev /。 那么,我应该怎么做才能使其加载?我在配置(以及哪一个)中缺少什么?
答案 0 :(得分:1)
仅尝试解释发生的情况:
API网关可能正在重定向您的应用程序以使其以路径“ / dev”运行,因此,当我们访问“ / dev”时,它将重定向到我们的Nuxt应用程序中,并返回200,并且当Nuxt尝试获取文件时它不添加路径“ / dev”。 但是,如果将“ publicPath”更改为“ / dev / _nuxt /”,则可以使用路径“ / dev / dev / _nuxt”访问文件,第一个“ dev”可能是API Gateway添加它,并且当Nuxt应用程序尝试获取转到“ / dev / _nuxt /”的文件,您得到404。
我无法真正修复它,但是如果我开始使用真实域,我将不会遇到这些问题,因为API Gateway会停止将此“ / dev”添加到我的路径中。为此,您可以使用无服务器“ serverless-domain-manager”插件。
我还创建了一篇有关如何使用Typescript创建Nuxt应用程序的文章,您可以在此处查看操作方法:https://www.linkedin.com/pulse/nuxt-typescript-koa-serverless-edison-harada