js文件路径,NuxtJS + AWS Lambda问题

时间:2019-02-15 18:21:25

标签: aws-lambda nuxt.js

试图将我的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控制台中的错误外,一切都很好:

errors

当我检查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 /。 那么,我应该怎么做才能使其加载?我在配置(以及哪一个)中缺少什么?

1 个答案:

答案 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