node.js - 在 Google App Engine 上运行的 NextJs 应用程序的正确配置是什么?

标签 node.js reactjs google-app-engine google-cloud-platform next.js

我觉得我已经尝试了 app.yaml 和 next.config.js 中的所有内容,所以我只是想问,让 NextJs 应用程序在 Google App Engine 上运行的正确配置是什么?

我能够让它工作的唯一方法是删除 <Link href="..."> 的所有实例。并使用以下 app.yaml。

runtime: nodejs10

service: default
handlers:
  - url: /.*
      secure: always
      script: auto

env_variables:
  ...

我尝试了以下方法,但没有成功

runtime: nodejs10

service: default
handlers:
  - url: /_next
    static_dir: .next
    secure: always
  - url: /static
    static_dir: static
    secure: always
  - url: /.*
    secure: always
    script: auto

env_variables:
  ...

这是我正在使用的模块的版本。

"dependencies": {
    "@zeit/next-css": "^1.0.1",
    "@zeit/next-sass": "^1.0.1",
    "@zeit/next-workers": "1.0.1-canary.1",
    "apollo-cache-inmemory": "^1.6.3",
    "apollo-client": "^2.6.4",
    "apollo-link-http": "^1.5.16",
    "autoprefixer": "^9.6.4",
    "cannon": "^0.6.2",
    "compression": "^1.7.4",
    "d3-ease": "^1.0.5",
    "express": "^4.17.1",
    "firebase": "^7.2.1",
    "firebase-admin": "^8.6.1",
    "graphql": "^14.5.8",
    "graphql-tag": "^2.10.1",
    "gsap": "^2.1.3",
    "imagemin-mozjpeg": "^8.0.0",
    "imagemin-optipng": "^7.1.0",
    "imagemin-pngquant": "^8.0.0",
    "imagemin-svgo": "^7.0.0",
    "isomorphic-unfetch": "^3.0.0",
    "next": "9.1.2",
    "next-compose-plugins": "^2.2.0",
    "next-fonts": "^0.18.0",
    "next-images": "^1.2.0",
    "next-optimized-images": "^2.5.3",
    "next-react-svg": "1.1.0",
    "node-sass": "^4.12.0",
    "postcss-loader": "^3.0.0",
    "react": "16.11.0",
    "react-cookie": "^4.0.1",
    "react-dom": "16.11.0",
    "react-ga": "^2.7.0",
    "react-howler": "^3.7.4",
    "react-icons": "^3.7.0",
    "react-no-ssr": "^1.1.0",
    "react-progress-label": "^3.1.3",
    "react-resize-detector": "^4.2.0",
    "react-scroll": "^1.7.14",
    "react-slick": "^0.25.2",
    "react-spring": "^8.0.27",
    "shortid": "^2.2.15",
    "styled-jsx": "3.2.1",
    "tailwindcss": "^1.1.2",
    "three": "^0.108.0"
},
"devDependencies": {
    "@storybook/addon-a11y": "^5.2.0",
    "@storybook/addon-actions": "^5.2.1",
    "@storybook/addon-backgrounds": "^5.2.0",
    "@storybook/addon-console": "^1.2.1",
    "@storybook/addon-knobs": "^5.2.1",
    "@storybook/addon-links": "^5.2.1",
    "@storybook/addon-viewport": "^5.2.0",
    "@storybook/addons": "^5.2.1",
    "@storybook/react": "^5.2.1",
    "@storybook/storybook-deployer": "^2.8.1",
    "babel-eslint": "^10.0.3",
    "babel-jest": "^24.9.0",
    "babel-loader": "^8.0.6",
    "babel-plugin-inline-react-svg": "^1.1.0",
    "chalk": "^2.4.2",
    "dopl": "^0.2.0",
    "entities": "^2.0.0",
    "enzyme": "^3.10.0",
    "enzyme-adapter-react-16": "^1.14.0",
    "eslint": "^6.4.0",
    "eslint-config-airbnb": "^18.0.1",
    "eslint-loader": "^3.0.0",
    "eslint-plugin-import": "^2.18.2",
    "eslint-plugin-jsx-a11y": "^6.2.3",
    "eslint-plugin-react": "^7.14.3",
    "eslint-plugin-react-hooks": "^2.2.0",
    "gulp": "^4.0.2",
    "jest": "^24.9.0",
    "minimist": "^1.2.0",
    "packpath": "^0.1.0",
    "react-generate-props": "^0.6.0",
    "require-context.macro": "^1.1.1",
    "storybook-loader": "^0.1.4",
    "worker-loader": "^2.0.0"
}

最佳答案

使用 SSR(服务器端渲染)时,请确保检查预期代码是否在服务器或浏览器上运行。如果在浏览器上运行时 getIntialProps 从本地主机获取,您的代码将会中断。

关于node.js - 在 Google App Engine 上运行的 NextJs 应用程序的正确配置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58659101/

相关文章:

python - 如何通过 Python GAE 将视频上传到 Google Cloud Storage?

javascript - 我可以指定如何处理异步 javascript 库中的错误吗?

node.js - Nightmarejs “Unexpected token …”

javascript - Jade #{user.username} 部分页面刷新

node.js - 带或不带 'www' 的域名

java - smartGWT 应用程序中 RPC 成功时返回 ListGridRecord[ ]

javascript - 如何使 Material-UI Table 保持动态高度的可滚动性?

javascript - 如何以动态方式控制带有悬停(显示和隐藏)的元素

reactjs - 仅在点击屏幕时检测到状态更改

python - GAE 向所有事件实例发送请求