jac(jinja-assets-compressor)不在AWS elasticbeanstalk上的flask应用程序中工作

时间:2016-04-12 20:33:00

标签: amazon-web-services flask jinja2 elastic-beanstalk amazon-elastic-beanstalk

我在本地CentOS 7开发堆栈中的烧瓶应用程序中使用jac没有问题,但是我无法将其部署到AWS EB实例:浏览器GET请求没有得到任何回复。

AWS EB / var / log / httpd / access_log只重复此行约一百次:

127.0.0.1 (-) - - [12/Apr/2016:19:54:11 +0000] "GET / HTTP/1.1" 301 243 "-" "Python-urllib/2.7"

并且最后:

xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx) - - [12/Apr/2016:19:55:35 +0000] "GET / HTTP/1.1" 301 247 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"

所以在github jac存储库中有一个requirement.txt 如下:

Jinja2
beautifulsoup4==4.3.2
rjsmin==1.0.10
ordereddict==1.1
six==1.9.0

但是我没有添加任何内容,因为所有上述行都包含在我从pip冻结获得的requirements.txt文件中。

我认为问题可能是缺少较少的库,因为我有一些css要压缩,所以我将以下内容添加到.ebextensions:

commands:
01-install-nodejs-npm:
    command: yum install -y --enablerepo=epel nodejs npm
02-install-less:
    command: npm install -g less

但这并未解决问题。

我认为代码没有问题,因为它适用于开发环境,但为了确保,以下几行在flaskApp init .py中:

app.config['COMPRESSOR_DEBUG'] = app.config.get('DEBUG')
app.config['COMPRESSOR_OUTPUT_DIR'] = './flaskApp/static/mydomain-dev'
app.config['COMPRESSOR_STATIC_PREFIX'] = '/static/mydomain-dev'
jac = JAC(app)

env = jinja2.Environment(extensions=[CompressorExtension])
env.compressor_output_dir = './flaskApp/static/mydomain-dev'
env.compressor_static_prefix = '/static/mydomain-dev'
#env.compressor_source_dirs = './flaskApp/staticLib/'

我被困在这一点上。

CentOS venv应用程序与AWS应用程序之间的唯一区别在于,由于应用程序使用flask_sslify,因此AWS上的每个请求都会重定向到https(因为如果app.debug = True,flask_sslify将无法重定向,因此不在CentOS中)。 / p>

请问好吗?

1 个答案:

答案 0 :(得分:0)

你正在为烧瓶做一个配置,为jinja做一个配置(当独立使用时)。 删除这些行:

env = jinja2.Environment(extensions=[CompressorExtension])
env.compressor_output_dir = './flaskApp/static/mydomain-dev'
env.compressor_static_prefix = '/static/mydomain-dev'

JAC(app)配置它。 但是,JAC不会发出任何301,因为它不知道任何路由和东西(我需要检查代码,因为我暂时不检查它)。 该页面重定向到哪里?