2015-09-01 67 views
0

我的項目具有以下結構:如何在JavaScript中利用Flask Blueprints?

run.py 
application/ 
-- __init.py__ 
-- landing/ 
-- -- templates/ 
-- -- -- index.html 
-- -- static/ 
-- -- -- img/ 
-- -- -- -- photo1.png 
-- -- -- -- photo2.png 
-- -- -- -- photo3.png 
-- -- -- js/ 
-- -- -- -- script.png 
-- -- __init.py__ 
-- -- models.py 
-- -- views.py 

run.py包含:

from application import app 

if __name__ == '__main__': 
    app.run(debug=True) 

中的其它事情,application/__init.py__包含:

from application.landing.views import landing 
app.register_blueprint(landing) 

application/landing/__init.py__包含:

# coding:utf-8 
from views import * 

application/landing/models.py是空

application/landing/views.py包含:現在

from flask import render_template , Blueprint 

from application import app 

landing = Blueprint('landing' , __name__ , static_url_path='/landing/static' , static_folder='./static' , template_folder='./templates') 

@landing.route('/') 
@landing.route('/index') 
def index(): 
     return render_template("index.html") 

,index.html中,我定義每個cssjpg文件:

{{ url_for('landing.static' , filename='css/bootstrap.min.css') }} 

{{ url_for('landing.static' , filename='img/logo.png') }} 
分別爲

。到現在爲止還挺好。但是,application/landing/static/js/main.js下有一個文件,需要三個靜態文件: //全屏幕背景圖片幻燈片 $ .backstretch([ 「landing/static/img/bg/01.jpg」, 「landing/static/img /bg/02.jpg「, 」landing/static/img/bg/03.jpg「 ],{duration:3000,fade:750});

顯然,我不想硬 - 這些代碼文件,但使用的藍圖,而不是或者換句話說,這樣的事情:

$.backstretch([ 
     "{{ url_for('landing.static' , filename='img/bg/01.jpg') }}", 
     "{{ url_for('landing.static' , filename='img/bg/02.jpg') }}", 
     "{{ url_for('landing.static' , filename='img/bg/03.jpg') }}" 
    ], {duration: 3000, fade: 750}); 

但正如你可能已經猜到,這將返回404錯誤:

127.0.0.1 - - [31/Aug/2015 16:47:42] "GET /%7B%7B%20url_for('landing.static'%20,%20filename='img/bg/01.jpg')%20%7D%7D HTTP/1.1" 404 - 
127.0.0.1 - - [31/Aug/2015 16:47:42] "GET /%7B%7B%20url_for('landing.static'%20,%20filename='img/bg/02.jpg')%20%7D%7D HTTP/1.1" 404 - 
127.0.0.1 - - [31/Aug/2015 16:47:42] "GET /%7B%7B%20url_for('landing.static'%20,%20filename='img/bg/03.jpg')%20%7D%7D HTTP/1.1" 404 - 

那麼有什麼想法?

回答

1

你可以嘗試使用燒瓶jsglue插件http://stewartpark.github.io/Flask-JSGlue/

在短短包括插件

<head> 
{{ JSGlue.include() }} 
</head> 

然後在實際的JavaScript代碼:

Flask.url_for("landing.static", {"filename": "img/bg/01.jpg"})