【问题标题】:How to avoid routing changes when deploying angular app?部署角度应用程序时如何避免路由更改?
【发布时间】:2020-07-24 14:06:34
【问题描述】:

在本地运行我的 Angular 应用程序时,我可以访问例如 localhost:4200/login。当我部署我的 Angular 应用程序时,当我转到 website.com/login 时,我得到“在此服务器上找不到请求的 URL /login”。我的应用已部署到 Google Cloud 应用引擎。

当我将“useHash: true”添加到我的 RouterModule 时。它工作正常,所以 website.com/#/login 工作,但这似乎违反直觉,因为当有人自己填写 url 时,我会假设他们会填写 website.com/login,这会将他们再次重定向到未找到在这台服务器上。

我怎样才能避免使用这个“useHash:true”并使我的路由与本地路由相同?

【问题讨论】:

  • 您是否尝试过本文中提到的解决方案stackoverflow.com/questions/43535048/…
  • 尝试了那里提到的所有解决方案。每次重新上传时也删除了缓存,没有任何效果。唯一有效的是当我在其中留下“useHash:true”时。

标签: angular google-app-engine google-cloud-platform routing


【解决方案1】:

我假设您的 app.yaml 看起来像这样:

handlers:
  - url: /
    upload: /index.html
    static_files: /index.html
    secure: always

现在,当您尝试打开 URL /login/ 时,app.yaml 中没有它的路由,这就是它返回 404 的原因。所以useHash 指令是您在这里唯一的解决方案。

【讨论】:

    猜你喜欢
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多