python - 使用 Python Flask、AngularJS、测试/生产目录和服务请求

标签 python angularjs heroku flask

这是设置:

使用 ngBoilerplate (grunt, bower, angular, theworks...) 创建一个 SAP 应用程序。在我的本地主机上,它启动一个 NodeJS 服务器,以便我可以测试应用程序。这一切都很好,减去数据库/api。使用 Grunt,它将创建一个/build 文件夹(它是所有未压缩的源、 Assets ,用于调试)和一个包含生产代码的/bin 文件夹。

对于后端,我在 Heroku 上有一个 Python flask 应用程序(我将用于 REST API)。在主要的 Python 脚本中:

@app.route("/")
def index():
    #index.html has the angular SAP
    return make_response( open('build/index.html').read() )

我将代码推送到 Heroku,它检测到一个 Python 应用程序(我认为这很好,因为我需要 Python 来发出我的 api 请求),并且它提供正确的 index.html。我看到 Angular 向/vendor/angular.js/css/angular.css 等发出请求,当这些文件在技术上位于/build/vendor/angular.js 中时。

我不确定我是否应该告诉 Angular 在哪里获取文件,或者它是否与 Python 相关。

我是否应该像在 LAMP 领域一样更改 DOCROOT (WWW)?
我是否更改了 Angular 中的 routeprovider/urlrouterprovider 以告诉它将文件提供到不同的位置?
或者我是否改变了我在 Python 中所做的事情?

项目目录如下所示:
hellworld.py
requirements.txt
runp-heroku.py
procfile
Gruntfile.js
build/       //test code
  assets/
  index.html
  vendor/
bin/         //production code
  assets/
  index.html
  vendor/
src/         //original code
  assets/
  index.html
  vendor/

最佳答案

我从未使用过 Heroku,我通常在云中的某个地方获取 Ubuntu 服务器并手动设置生产。但主要的一点是你的生产不同于开发,你需要一个不同的生产配置。您有两个选择:

  • 配置 Flask 的 static_path
  • 或者配置 nginx 来为您从正确的目录构建的 js/css 提供服务
  • 关于python - 使用 Python Flask、AngularJS、测试/生产目录和服务请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19331975/

    相关文章:

    python - 基于约束的Dataframe列生成

    javascript - 使用 selenium Python 单击 javascript 按钮

    python - 在 WSL Ubuntu 中创建新虚拟环境时,pipenv 挂起且无输出

    python - KeyError : 'driver' in print(response. request.meta ['driver' ].title)

    javascript - Onsen UI + 可排序列表(拖放)

    Node.js + Socket.io 应用程序 - 在heroku 中不起作用

    javascript - 获取值输入表单

    javascript - Angular - 使用 ngNotificationsBar 时发现循环依赖

    deployment - Heroku 错误 H12(请求超时)问题

    Heroku 上的 Javascript Assets 编译错误