角度路由器未与使用ng构建的Flask服务器啮合

2024-05-29 03:23:39 发布

您现在位置:Python中文网/ 问答频道 /正文

在使用Flask和ng build--aot--watch的angular5时,我在获取Angular的路由和刷新页面来工作时遇到了一些主要问题。在

我遇到过很多尝试来解决这个问题,但是没有一个应用到我的项目工作中(我在那里尝试时提供的示例项目似乎也不起作用)。在

会发生什么(取决于我尝试的事情)是:

  1. 它根本找不到路径,我得到一个Jinja2错误
  2. 找不到的文档本地主机:5015/(我使用的端口)然后我得到了404和一个白色屏幕
  3. 它加载索引.html,但刷新后会得到404(这意味着浏览器试图从服务器获取页面,而不是使用角度路由系统)
  4. 我得到了和这个一样的问题:Syntax Error in Angular App: Unexpected token <

我的印象是这是所有SPA的正常问题,解决方案是始终将服务器重定向到索引.html. 我们已经做到了这一点(AFAIK),并尝试了多种方法: 我们的结构大致如下:

- ProjectDir
  - reverseProxy_Calls
  - scripts
  - swagger_yaml_definitions
  - templates
    - e2e
    - dist
    - src
      - app

我们的服务器.py包含这个(包括其他内容)

^{pr2}$

^这里有多种方法显示了处理此问题的各种尝试。在

我还研究并尝试了使用以下变体的项目:

  • 烧瓶Cli
  • 烧瓶脚本
  • 烧瓶引导

当我试过的时候,他们都没有解决这个问题。在

我被告知在Angular中使用hashRoute定位策略而不是History PushState策略也会起作用,但是当我尝试这样做时,它也会在刷新时丢失页面(另外,我们希望将来使用服务器端呈现,hashRoute定位策略避免了这种可能性,还有许多其他缺点)。在

可能与此相关的是,Flask似乎在找到索引.html并首先路由,擦除任何打印到浏览器开发控制台的内容。我在一些烧瓶的例子中看到了这一点,但不是所有的,我不确定是什么原因造成的。在

当通过ngserve--aot--prod运行时,一切工作都非常正确,正如预期的那样。只有用烧瓶盛东西时,东西才会坏掉。在

很抱歉问了这么长时间,谢谢你提前抽出时间。在


Tags: 项目方法定位服务器flask路由内容烧瓶
1条回答
网友
1楼 · 发布于 2024-05-29 03:23:39

I am under the impression this is a normal issue with all SPAs and that the solution is to always redirect the server to index.html. We have done this (AFAIK), and attempted multiple ways to do this

您还需要将所有HTTP错误重定向到index.html。在

相关问题 更多 >

    热门问题