如何使用angular.js前端构建flask应用程序? 什么是最佳做法?我是否应该使用像ngnix这样的webserver来托管静态文件,即使我正在进行开发工作?
在默认情况下,我可以像下面这样提供index.html:
@app.route('/')
def index():
return make_response(open('static/index.html').read())
或
@app.route('/')
def index():
return send_from_directory('static', 'index.html')
但是,有一个问题,我不能指向没有'../static'前缀的js文件。我只想指出angular.js和其他所有人:
<script src="lib/angular/angular.js"></script>
不
<script src="../static/lib/angular/angular.js"></script>
我可以更改烧瓶中的所有静态文件前缀吗?或者有解决这个问题的好方法吗?
感谢。
答案 0 :(得分:4)
如果你真的想,你可以:
app = Flask(__name__, static_url_path='')
虽然我只使用绝对网址:
/static/lib/angular/angular.js
答案 1 :(得分:3)
我认为最佳做法是让您的网络服务器提供所有静态内容(angularjs,其他js文件,html,css,图像等)。
然后使用某种类型的约定(我喜欢使用'/ api'路径)来提供和接收烧瓶服务器的数据。
例如,在您的apache配置中:
<VirtualHost *:80>
DocumentRoot /path/to/static/files
WSGIScriptAlias /api /path/to/flask/flask.wsgi
...
</VirtualHost>