当前位置: 首页 > 面试题库 >

在Google App Engine上部署create-react-app

洪永长
2023-03-14
问题内容

我正在尝试在Google App Engine上部署使用create-react-app创建的应用程序。

我的应用程序在本地(npm startnpm run build &serve-sbuild)都可以正常运行。但是,在Google App
Engine上部署的应用程序仅显示index.html,并且不会调用我的react代码。

Chrome开发者控制台显示Uncaught SyntaxError: Unexpected token <

另外,我在console.cloud.google.com上发现,已部署的应用程序不包含构建文件夹。这样对吗?

任何人都可以解决这个问题?

这是我的package.json:

{
  "name": "XXXXX",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "react": "^16.8.2",
    "react-dom": "^16.8.2",
    "react-ga": "^2.5.7",
    "react-router-dom": "^4.3.1",
    "react-scripts": "2.1.5"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
 },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": [
    ">0.2%",
    "not dead",
    "not ie <= 11",
    "not op_mini all"
  ]
}

另外,这是我的app.yaml。

runtime: nodejs10

handlers:
- url: /.*
  static_files: build/index.html
  upload: build/index.html
- url: /
  static_dir: build

问题答案:

经过多次搜索,我发现我的应用程序的路由系统是原因。

如本文所述,我们在编写app.yaml时需要格外小心。如果我们首先编写以下项目,则GAE将返回build/index.html所有查询,包括对/static/js和的访问/static/css

- url: /
  static_files: build/index.html
  upload: build/index.html

create-react-app为创建一个构建文件夹和静态子文件夹npm run build。因此,我必须像这样更具体地编写我的app.yaml:

handlers:
  - url: /static/js/(.*)
    static_files: build/static/js/\1
    upload: build/static/js/(.*)
  - url: /static/css/(.*)
    static_files: build/static/css/\1
    upload: build/static/css/(.*)
  - url: /static/media/(.*)
    static_files: build/static/media/\1
    upload: build/static/media/(.*)
  - url: /(.*\.(json|ico))$
    static_files: build/\1
    upload: build/.*\.(json|ico)$
  - url: /
    static_files: build/index.html
    upload: build/index.html
  - url: /.*
    static_files: build/index.html
    upload: build/index.html


 类似资料:
  • 问题内容: 如何在Apache WAMP / XAMPP服务器上部署构建? 我创建了一个应用,并且在此应用上有两个页面 当我执行或运行正常并且所有页面在URL导航或按钮单击上均正确呈现时 我执行了构建命令 npm运行构建 它会在文件夹中生成所有和文件。 我搬到这个build文件夹中的内容的文件夹,并执行对URL 的只显示主页。然后下一页给出 但是当我执行npm命令的模块时,它在 服务构建 请帮我如

  • 在CRA使用网络字体有问题,在开发模式下它是这样加载的 字体已加载 但是当部署时,在生产模式下,它似乎根本没有加载。伙计们,有什么想法吗?这是我的css。

  • 问题内容: 我有一个使用Expressjs的前端create-react-app和一个后端API。 我已将后端API成功部署到Google App Engine。 但是现在我需要将create-react-app部署到Google Cloud,这变得 非常令人困惑,我尝试了一段时间的google,目前尚无真正/推荐的 方法。 至少我看到其他人建议以两种方式这样做: =>我看到使用这种方式有一个缺点

  • 问题内容: 我在这里从https://www.tutorialspoint.com/reactjs/reactjs_jsx.htm创建了一个基本的React App ,我想在基于Apache的服务器上运行此测试代码,我知道我需要创建一个可分发的构建,但是我无法弄清楚该怎么做,无法找到明确的说明。 我已经在Apache服务器上看到了这篇React,js的文章,但是除了指导原则之外没有什么 问题答案:

  • 我有个问题。我试图在WildFly服务器上部署一个应用程序。在尝试这样做时,我得到了一个错误,如下所示: 我搜索了一个解决方案,我找到了一个--我应该将jar添加到...但这无济于事!Wildfly正在尝试(当然没有任何努力)部署,但它失败了。然后我试图部署我的应用程序--同样的错误出现了:/ 干杯并感谢你事先给出的任何答案。

  • Create React App 不用配置就可以创建 React App。 全局安装: npm install -g create-react-app 创建 App: create-react-app my-appcd my-app/ 启动 npm: npm start 打开 http://localhost:3000/  查看你的 App。 如果你准备将其部署到生产环境,只需创建一个压缩包,并且运行 npm run build。