小编Nat*_*erd的帖子

如何在GAE中设置反应路线?在基本create-react-app的GAE中,通过URL直接路由到react-router-dom路由失败?

现在回答

这对我来说很难做到正确。通过Google进行指导的方式很少。我希望这对其他人有帮助。

正如Dan Cornilescu所指出的,管理人员接受第一场比赛。因此,我们从更具体到更具体。我已经按照以下步骤创建的文件夹结构解决了这个问题npm run build:1.处理js,css和media的子目录。2.处理对manifest.json和fav.ico的json和ico请求。3.将所有其他流量路由到index.html。

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
Run Code Online (Sandbox Code Playgroud)

欢迎提供更有效的答案。

原始问题:

为反应路由器路由设置GAE app.yaml会产生“意外令牌<”错误。

在开发环境中,所有路径都可以在直接调用时起作用。localhost:5000和localhost:5000 / test产生预期的结果。

在GAE标准app.yaml中,当直接调用URL www.test-app.com时,该函数用于根目录。 www.test-app.com/test会产生404错误。

app.yaml #1

runtime: nodejs8
instance_class: F1
automatic_scaling:
  max_instances: 1

handlers:
  - url: /
    static_files: build/index.html
    upload: build/index.html
Run Code Online (Sandbox Code Playgroud)

对于所有路径,将app.yaml配置为接受通配符路由失败。www.test-app.com/和www.test-app.com/test产生错误“意外令牌<”。看来它正在将.js文件作为index.html提供。

app.yaml …
Run Code Online (Sandbox Code Playgroud)

google-app-engine app.yaml google-cloud-platform react-router create-react-app

10
推荐指数
2
解决办法
1413
查看次数