Variable rules不像我期望的那樣使用static_url_path
。static_url_path和變量規則
簡單,爲什麼這項工作:
import flask
app = flask.Flask(__name__)
@app.route("/", defaults={"p": "")
@app.route("/<path:p>")
def main(p):
return "<h1>Hello %s</h1>" % p
if __name__ == '__main__':
app.run(debug=True)
但不爲呢?
import flask
app = flask.Flask(__name__, static_url_path="")
@app.route("/", defaults={"p": "")
@app.route("/<path:p>")
def main(p):
return "<h1>Hello %s</h1>" % p
if __name__ == '__main__':
app.run(debug=True)
注意添加
static_url_path
一些背景信息;我對Flask和AngularJS都是新手,但是在這裏結合使用它們,對於那些不熟悉AngularJS的人來說;我使用AngularJS來生成一個單頁面應用程序,其中路徑用於動態替換文檔中的內容,而不是重新加載整個頁面。因此,我需要路由到相同的html文檔(不包括在上面的例子中)的所有路徑,理想情況下來自相同的函數,以便讓AngularJS處理渲染而不是Flask。
下面的答案解決了這個問題,但它不工作時,status_url_path
被使用,我不明白爲什麼。
Flask route for AngularJS with HTML5 URL mode
添加此作爲參考,因爲他是這樣做確切的事情。
http://www.youtube.com/watch?v=2geC50roans
謝謝Martijn,我會試着圍繞這個包圍我的腦袋,回到你身邊。 – 2014-10-20 13:09:23
似乎工作正常。清楚的是,這也意味着所有地址,包括AngularJS控制器的地址,都必須包含燒瓶「靜態/」目錄?例如。 'templateUrl:「static/views/list.html」' – 2014-10-20 16:44:20
@MarcusOttosson:是的,如果這些部分是靜態的(例如Flask服務器只需要生成文件數據,不在模板中插入任何內容或產生其他動態信息)。 – 2014-10-20 16:46:14