5

这是设置:

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

对于后端,我在 Heroku 上有一个 Python 烧瓶应用程序(我将用于 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。当这些文件在技术上位于 /build/vendor/angular.js 时,我看到 Angular 向 /vendor/angular.js /css/angular.css 等发出请求。

我不确定我是否应该告诉 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/
4

1 回答 1

0

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

  • 配置 Flask 的 static_path
  • 或者配置 nginx 来提供你从正确目录构建的 js/css
于 2013-10-14T09:33:09.460 回答