【问题标题】:How do we run Angular 2 application on Python Tornado?我们如何在 Python Tornado 上运行 Angular 2 应用程序?
【发布时间】:2018-04-01 07:56:38
【问题描述】:

我想在 Python 的 Tornado 后端运行 Angular2 前端。我尝试在 Tornado 的主处理程序中提供 index.html,但在我看来,当我运行 Tornado 服务器时组件没有被加载。我不想在 ng 服务器上运行 Angular 前端。无论如何在 Tornado 上运行 Angular2 还是不可行?

【问题讨论】:

  • 有可能(或者,至少一年前it was)你能提供代码、错误信息、配置文件等吗?
  • @ForestG 没有错误消息。我创建了 bundle.js 并从 index.html 调用它。当我运行ng serve 命令时,angular cli 服务器启动并呈现组件。当我尝试运行我的 python 服务器时,python server.py 我可以毫无错误地打开页面,但组件没有显示。
  • 可以在浏览器的控制台中读取什么内容?
  • 浏览器控制台没有错误。它只是不加载应用程序组件。我不知道为什么。有没有我可以使用的 Angular + Python Tornado 的入门模板。
  • 请注意,StaticFileHandler 的路径是相对于工作目录评估的,而不是相对于带有路径的 py 文件。因此,如果您从/Users/username/project/python tornado_app.py 运行您的应用程序,StaticFileHandler 将提供来自/Users/username/project/*/Users/username/project/dist/* 的文件。但如果你从/ 运行python /Users/username/project/tornado_app.py,搜索到的目录将是/*/dist/*

标签: python angular tornado


【解决方案1】:

1) 运行后,您必须托管在项目的“./dist”文件夹中生成的 Angular 构建文件

ng 构建 --prod

在您的 Apache / NGINX Web 根文件夹中。

2 ) 将该前端链接到后端取决于您的 API 调用。如果您将 Tornado Web 服务器设置为侦听端口 3001 上的调用,那么您对 ​​Angular 后端的所有请求都必须传送到该端口。

因此,最后,您应该让您的 python3 /link/to/tornado/app.py 在某处的终端中运行和侦听,并且您的 Web 服务器为您从提供前端的 ./dist 文件夹中提取的文件提供服务-结束。

3) 在 Apache 上托管 angular2+ 应用程序需要您配置一个 .htaccess 文件,但这将启用 URL 的重写:复制链接中的文件 .htaccess redirects not working with Angular 4

【讨论】:

    猜你喜欢
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 2018-05-30
    • 2017-06-07
    相关资源
    最近更新 更多